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


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的让textarea自适应高度的插件
Aug 03 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
Dec 11 Javascript
js实现select组件的选择输入过滤代码
Oct 14 Javascript
JavaScript插件化开发教程(五)
Feb 01 Javascript
利用js实现禁止复制文本信息
Jun 03 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
每日十条JavaScript经验技巧(一)
Jun 23 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
Dec 19 Javascript
利用纯js + transition动画实现移动端web轮播图详解
Sep 10 Javascript
layui框架与SSM前后台交互的方法
Sep 12 Javascript
vue+iview实现手机号分段输入框
Mar 25 Vue.js
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网站)
2015/10/20 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
Python中with及contextlib的用法详解
2017/06/08 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
python中的decorator的作用详解
2018/07/26 Python
Python实现TCP通信的示例代码
2019/09/09 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
用python实现名片管理系统
2020/06/18 Python
Python try except finally资源回收的实现
2021/01/25 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
高三生物教学反思
2014/01/25 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
护士实习自荐信
2015/03/06 职场文书
新闻稿怎么写
2015/07/18 职场文书
小学美术教学反思
2016/02/17 职场文书
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技