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


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 MD4
Dec 20 Javascript
html中table数据排序的js代码
Aug 09 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
JavaScript中Function()函数的使用教程
Jun 04 Javascript
JavaScript获取短信验证码(周期性)
Dec 29 Javascript
jQuery实现的分页功能示例
Jan 22 Javascript
angularjs点击图片放大实现上传图片预览
Feb 24 Javascript
基于Vue.js 2.0实现百度搜索框效果
Dec 28 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
VSCode中如何利用d.ts文件进行js智能提示
Apr 13 Javascript
d3.js实现自定义多y轴折线图的示例代码
May 30 Javascript
微信小程序实现蒙版弹出窗功能
Sep 17 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
Vue循环组件加validate多表单验证的实例
2018/09/18 Javascript
koa源码中promise的解读
2018/11/13 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
列举Python中吸引人的一些特性
2015/04/09 Python
python后端接收前端回传的文件方法
2019/01/02 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
办公室文员工作自我评价
2013/12/01 职场文书
乳制品整治工作方案
2014/05/29 职场文书
同学聚会致辞集锦
2015/07/28 职场文书