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


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 相关文章推荐
jQuery版Tab标签切换
Mar 16 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
Feb 18 Javascript
javascript定时变换图片实例代码
Mar 17 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
Feb 03 Javascript
jQuery实现返回顶部效果的方法
May 29 Javascript
javascript实现密码验证
Nov 10 Javascript
JavaScript_ECMA5数组新特性详解
Jun 12 Javascript
Bootstrap整体框架之CSS12栅格系统
Dec 15 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
Dec 25 jQuery
JS实现的小火箭发射动画效果示例
Dec 08 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
JavaScript实现随机点名小程序
Oct 29 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的zip解压缩类pclzip使用示例
2014/03/14 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
实现PHP搜索加分页
2016/10/12 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
python中怎么表示空值
2020/06/19 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
创立科技Java面试题
2015/11/29 面试题
销售职业生涯规划范文
2014/03/14 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
教师节老师寄语
2015/05/28 职场文书