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


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 相关文章推荐
js利用Array.splice实现Array的insert/remove
Jan 13 Javascript
javascript 对象定义方法 简单易学
Mar 22 Javascript
jQuery 前的按键判断代码
Mar 19 Javascript
优化innerHTML操作(提高代码执行效率)
Aug 20 Javascript
js中AppendChild与insertBefore的用法详细解析
Dec 16 Javascript
AngularJS学习笔记之基本指令(init、repeat)
Jun 16 Javascript
js小数计算小数点后显示多位小数的实现方法
May 30 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
Jan 13 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
Jun 04 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
Nov 14 Javascript
使用Bootstrap做一个朝代历史表
Dec 10 Javascript
交互式可视化js库gojs使用介绍及技巧
Feb 18 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合并数组+与array_merge的区别分析
2010/08/01 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
在Docker上开始部署Python应用的教程
2015/04/17 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Pytorch之parameters的使用
2019/12/31 Python
如何在django中添加日志功能
2020/02/06 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
大学生村官典型材料
2014/01/12 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
社区娱乐活动方案
2014/08/21 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
请假条应该怎么写?
2019/06/24 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
Python中的pprint模块
2021/11/27 Python