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


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 相关文章推荐
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
Nov 03 Javascript
jQuery中的val()示例应用
Feb 26 Javascript
有关JavaScript中call()和apply() 的一些理解
May 20 Javascript
jQuery焦点图左右转换效果
Dec 12 Javascript
Javascript实现信息滚动效果
May 18 Javascript
基于 Bootstrap Datetimepicker 联动
Aug 03 Javascript
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
代码实例ajax实现点击加载更多数据图片
Oct 12 Javascript
JavaScript学习笔记之数组基本操作示例
Jan 09 Javascript
详解Vue的异步更新实现原理
Dec 22 Vue.js
浅谈JS的二进制家族
May 09 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 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
详解python logging日志传输
2020/07/01 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
关于元旦的广播稿
2014/02/16 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
妇女干部培训方案
2014/05/12 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
Pytest中conftest.py的用法
2021/06/27 Python
Oracle中DBLink的详细介绍
2022/04/29 Oracle
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers