用显卡加速,轻松把笔记本打造成取暖器的办法!


Posted in Javascript onApril 17, 2013

最近破事比较多,好久没来这里写异想天开的玩意了。不过今天早上倒是想到个很有趣的东东,所以花了半小时简单的琢磨了会,顺便写点分享下。

天气凉的时候,或者冻手冻脚的时候~ 于是这热乎乎的笔记本正好成了烘手的利器:)

美中不足的是,平时不想它热的时候,风扇总是忽忽的转不停。现在真想让它热,倒是不给力了。

解决办法也很简单,挂个3D游戏在那,特效全开,不热也不行。不过这样很是占用系统资源,不如自己简单的打造个“取暖器”!

电脑里发热最大的硬件无非就是CPU和显卡了。让这两个硬件不停的工作,风扇不狂转都不行~
本打算用vc的写个简单的消耗CPU和GPU的小程序,不过像我这样的jsfans,任何问题都会遐想一下:在web里也能不能实现?结果当然是肯定滴!
现在的浏览器都支持GPU硬件加速了,不如直接用js来实现吧~ 仅仅几行代码就可以搞定!

代码非常简单,就是不停的渲染图片。经过一番精简,干脆把图片也去掉了,直接用一空白的canvas代替。反正我们的目的不是美观,仅仅是让硬件工作,发热!

想试试就点这里:http://www.etherdream.com/FunnyScript/GPUHeater.html (最好用 ie9)

用显卡加速,轻松把笔记本打造成取暖器的办法!

<!DOCTYPE html>
<html>
<head>
<title>Heater</title>
</head>
<body>
Heating...
<canvas id="p" width="512" height="512" style="position:absolute; left:-999px; top:-999px"></canvas>
<canvas id="p2" width="512" height="512" style="position:absolute; left:-999px; top:-999px"></canvas>
<script>
var ctx = document.getElementById('p').getContext('2d');
var src = document.getElementById('p2');

setInterval(function() {
    for(var i=0; i<1000; i++)
        ctx.drawImage(src, 0, 0);
}, 16);
</script>
</body>
</html>


好吧,够简单的代码,不过它确实工作了,风扇开始呼呼作响。
在ie9上,运行的和想象中的完全一致:CPU使用率还不到1%,并且页面最小化了仍在渲染。具体发了多少的热,还得有撸大师说了算。

用显卡加速,轻松把笔记本打造成取暖器的办法!

起先只有40度,不一会儿温度就开始飙升。由于是集成显卡,而且笔记本硬件挨得比较近,所以温度都算到CPU里了。。。

用显卡加速,轻松把笔记本打造成取暖器的办法!

当然啦,我们还可以使用Worker创建多线程,然后执行密集运算,充分消耗CPU资源~
不过“取暖”的同时,为了不影响其他程序的运行,所以这里就不浪费CPU了。
就到谈到这吧。上述代码仅在ie9最理想运行。
目前还是有不少浏览器不支持HTML5以及Worker线程的,为了能让这“在线取暖器”更兼容,下回有空再做个flash版本的,使用stage3D加速GPU,以及异步Shader消耗100%的CPU。。。

Javascript 相关文章推荐
验证javascript中Object和Function的关系的三段简单代码
Jun 27 Javascript
使用js在页面中绘制表格核心代码
Sep 16 Javascript
用js编写的简单的计算器代码程序
Aug 04 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
jQuery插件ContextMenu自定义图标
Mar 15 Javascript
Vue+webpack项目基础配置教程
Feb 12 Javascript
详解Puppeteer 入门教程
May 09 Javascript
微信小程序实现星级评价效果
Dec 28 Javascript
JavaScript Math对象和调试程序的方法分析
May 13 Javascript
JavaScript实现更换背景图片
Oct 18 Javascript
js轮播图之旋转木马效果
Oct 13 Javascript
js跑马灯代码(自写)
Apr 17 #Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 #Javascript
动态加载js和css(外部文件)
Apr 17 #Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
Apr 17 #Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
Apr 17 #Javascript
关于eval 与new Function 到底该选哪个?
Apr 17 #Javascript
js实现在页面上弹出蒙板技巧简单实用
Apr 16 #Javascript
You might like
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php 静态变量的初始化
2009/11/15 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
javascript css float属性的特殊写法
2008/11/13 Javascript
Js sort排序使用方法
2011/10/17 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
js实现列表按字母排序
2020/08/11 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
Python发送email的3种方法
2015/04/28 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
python 如何上传包到pypi
2020/12/24 Python
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
暑假实习求职信范文
2013/09/22 职场文书
旅行社优秀创业计划书
2014/08/16 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
初中家长评语大全
2014/12/26 职场文书
团日活动总结格式
2015/05/11 职场文书
2015学校年度工作总结
2015/05/11 职场文书
员工手册董事长致辞
2015/07/29 职场文书
Java设计模式之代理模式
2022/04/22 Java/Android