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


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 相关文章推荐
XML的代替者----JSON
Jul 21 Javascript
使用jQuery.fn自定义jQuery翻页插件
Jan 20 Javascript
JS获取几种URL地址的方法小结
Feb 26 Javascript
深入解析JavaScript中函数的Currying柯里化
Mar 19 Javascript
vue中页面跳转拦截器的实现方法
Aug 23 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
Apr 22 Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 Javascript
简单说说angular.json文件的使用
Oct 29 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
原生js 实现表单验证功能
Feb 08 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
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
PHP mkdir()定义和用法
2009/01/14 PHP
PHP中的替代语法介绍
2015/01/09 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
JavaScript中的事件处理
2008/01/16 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
js的对象与函数详解
2019/01/21 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
python实现与redis交互操作详解
2020/04/21 Python
Python如何急速下载第三方库详解
2020/11/02 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
数控技术应届生求职信
2013/11/13 职场文书
对公司合理化的建议书
2014/03/12 职场文书
贷款承诺书范文
2014/05/19 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript