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


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 相关文章推荐
javascript 学习之旅 (3)
Feb 05 Javascript
jQuery学习笔记之jQuery的事件
Dec 22 Javascript
javascript操作excel生成报表全攻略
May 04 Javascript
jQuery的animate函数学习记录
Aug 08 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
jQuery实现动态文字搜索功能
Jan 05 Javascript
如何使用bootstrap框架 bootstrap入门必看!
Apr 13 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
Sep 11 Javascript
Vue3不支持Filters过滤器的问题
Sep 24 Javascript
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
Vue全家桶入门基础教程
May 14 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
如何选购合适的收音机
2021/03/01 无线电
php下将XML转换为数组
2010/01/01 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
php提交post数组参数实例分析
2015/12/17 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
python global和nonlocal用法解析
2020/02/03 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
医药大学生求职简历的自我评价
2013/10/17 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
大四毕业生自荐书
2014/07/05 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
创先争优承诺书
2015/01/20 职场文书
Python实现简单的猜单词
2021/06/15 Python