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


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实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
js控制文本框只输入数字和小数点的方法
Mar 10 Javascript
javascript实现禁止复制网页内容汇总
Dec 30 Javascript
JS基于面向对象实现的拖拽功能示例
Dec 20 Javascript
AngularJs ng-change事件/指令的用法小结
Nov 01 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
Jun 13 Javascript
JS实现图片旋转动画效果封装与使用示例
Jul 09 Javascript
JS实现的碰撞检测与周期移动完整示例
Sep 02 Javascript
vue图片上传组件使用详解
Dec 23 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
Nov 05 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调用三种数据库的方法(1)
2006/10/09 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python中format()格式输出全解
2019/04/12 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
全球度假村:Club Med
2017/11/27 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
施工人员岗位职责
2013/12/12 职场文书
卫生安全检查制度
2014/02/04 职场文书
出国留学经济担保书
2014/04/01 职场文书
公司奖励通知
2015/04/21 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
花木兰观后感
2015/06/10 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
Python极值整数的边界探讨分析
2021/09/15 Python