用顯卡加速,輕松把筆記本打造成取暖器的辦法!
最近破事比較多,好久沒(méi)來(lái)這里寫(xiě)異想天開(kāi)的玩意了。不過(guò)今天早上倒是想到個(gè)很有趣的東東,所以花了半小時(shí)簡(jiǎn)單的琢磨了會(huì),順便寫(xiě)點(diǎn)分享下。
天氣涼的時(shí)候,或者凍手凍腳的時(shí)候~ 于是這熱乎乎的筆記本正好成了烘手的利器:)
美中不足的是,平時(shí)不想它熱的時(shí)候,風(fēng)扇總是忽忽的轉(zhuǎn)不停?,F(xiàn)在真想讓它熱,倒是不給力了。
解決辦法也很簡(jiǎn)單,掛個(gè)3D游戲在那,特效全開(kāi),不熱也不行。不過(guò)這樣很是占用系統(tǒng)資源,不如自己簡(jiǎn)單的打造個(gè)“取暖器”!
電腦里發(fā)熱最大的硬件無(wú)非就是CPU和顯卡了。讓這兩個(gè)硬件不停的工作,風(fēng)扇不狂轉(zhuǎn)都不行~
本打算用vc的寫(xiě)個(gè)簡(jiǎn)單的消耗CPU和GPU的小程序,不過(guò)像我這樣的jsfans,任何問(wèn)題都會(huì)遐想一下:在web里也能不能實(shí)現(xiàn)?結(jié)果當(dāng)然是肯定滴!
現(xiàn)在的瀏覽器都支持GPU硬件加速了,不如直接用js來(lái)實(shí)現(xiàn)吧~ 僅僅幾行代碼就可以搞定!
代碼非常簡(jiǎn)單,就是不停的渲染圖片。經(jīng)過(guò)一番精簡(jiǎn),干脆把圖片也去掉了,直接用一空白的canvas代替。反正我們的目的不是美觀,僅僅是讓硬件工作,發(fā)熱!
想試試就點(diǎn)這里: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>
好吧,夠簡(jiǎn)單的代碼,不過(guò)它確實(shí)工作了,風(fēng)扇開(kāi)始呼呼作響。
在ie9上,運(yùn)行的和想象中的完全一致:CPU使用率還不到1%,并且頁(yè)面最小化了仍在渲染。具體發(fā)了多少的熱,還得有擼大師說(shuō)了算。
起先只有40度,不一會(huì)兒溫度就開(kāi)始飆升。由于是集成顯卡,而且筆記本硬件挨得比較近,所以溫度都算到CPU里了。。。
當(dāng)然啦,我們還可以使用Worker創(chuàng)建多線程,然后執(zhí)行密集運(yùn)算,充分消耗CPU資源~
不過(guò)“取暖”的同時(shí),為了不影響其他程序的運(yùn)行,所以這里就不浪費(fèi)CPU了。
就到談到這吧。上述代碼僅在ie9最理想運(yùn)行。
目前還是有不少瀏覽器不支持HTML5以及Worker線程的,為了能讓這“在線取暖器”更兼容,下回有空再做個(gè)flash版本的,使用stage3D加速GPU,以及異步Shader消耗100%的CPU。。。
相關(guān)文章
簡(jiǎn)單談?wù)刯avascript代碼復(fù)用模式
這篇文章主要簡(jiǎn)單談?wù)刯avascript代碼復(fù)用模式,主要詳細(xì)介紹了類式繼承模式中的默認(rèn)模式,希望大家能夠喜歡。2015-01-01localStorage實(shí)現(xiàn)便簽小程序
這篇文章主要為大家詳細(xì)介紹了localStorage實(shí)現(xiàn)便簽小程序的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11帶你領(lǐng)略O(shè)bject.assign()方法的操作方式
這篇文章主要介紹了帶你領(lǐng)略O(shè)bject.assign()方法的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08JS實(shí)現(xiàn)商城秒殺倒計(jì)時(shí)功能(動(dòng)態(tài)設(shè)置秒殺時(shí)間)
這篇文章主要介紹了JS實(shí)現(xiàn)商城秒殺倒計(jì)時(shí)功能(動(dòng)態(tài)設(shè)置秒殺時(shí)間),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12JavaScript中的幾個(gè)關(guān)鍵概念的理解-原型鏈的構(gòu)建
JavaScript中的prototype,標(biāo)準(zhǔn)翻譯為“原型”,表示對(duì)象的初始形態(tài)2011-05-05實(shí)現(xiàn)無(wú)刷新聯(lián)動(dòng)例子匯總
最近在用asp.net做項(xiàng)目的時(shí)候,遇到需要實(shí)現(xiàn)無(wú)刷新聯(lián)動(dòng)的需求,度娘了一下,這里匯總一下幾個(gè)比較實(shí)用的例子,有需要的小伙伴可以參考下。2015-05-05JavaScript兩種計(jì)時(shí)器的實(shí)例講解
今天小編就為大家分享一篇關(guān)于JavaScript兩種計(jì)時(shí)器的實(shí)例講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01