腳本sleep怎么用 win10中vbs腳本無(wú)法輸入密碼?
win10中vbs腳本無(wú)法輸入密碼?Option explicit dim obj shell,str program,strkeys set obj shell createobject()strk
win10中vbs腳本無(wú)法輸入密碼?
Option explicit dim obj shell,str program,strkeys set obj shell createobject()strkeys hello world要發(fā)送字符,請(qǐng)自行更改str program c: windows syst
nodejs,密集計(jì)算會(huì)飆高cpu,那么有沒(méi)有什么方案可以盡可能的優(yōu)化?
密集型計(jì)算會(huì)增加cpu,這很正常。It 這相當(dāng)于搬運(yùn)重物。搬運(yùn)它需要很大的力氣。
優(yōu)化:。
分析代碼,確保沒(méi)有消耗cpu的無(wú)用代碼,比如無(wú)限循環(huán)。
通過(guò)一些算法優(yōu)化,比如一些空間換時(shí)間的算法。
并行計(jì)算(因?yàn)閚odejs可以 t直接操縱線程,可以使用child_process多進(jìn)程模式來(lái)利用多核計(jì)算)。
如果優(yōu)化后的代碼可以 t達(dá)到預(yù)期效果,可以考慮比v8更高效的C,通過(guò)node-gyp編譯成原生模塊。
nodejs對(duì)于cpu密集型計(jì)算的可怕之處在于它阻塞了eventloop,使得后續(xù)任務(wù)無(wú)法執(zhí)行,可以 不要利用并發(fā)性,這對(duì)處理請(qǐng)求的服務(wù)器來(lái)說(shuō)是致命的。要解決這個(gè)問(wèn)題,可以用child_process創(chuàng)建一個(gè)子進(jìn)程,或者用一個(gè)計(jì)算能力更強(qiáng)的機(jī)器來(lái)提供微服務(wù)。
我們?cè)趎gnix也遇到過(guò)類似的情況,可能有參考意義。服務(wù)器提供上傳設(shè)備固件的功能。用戶可以通過(guò)設(shè)備的前端上傳設(shè)備固件。;的網(wǎng)頁(yè),然后后端程序會(huì)將固件升級(jí)到設(shè)備上。
設(shè)備的固件大小在100 m左右,所以我們?cè)趎gnix服務(wù)器上編寫LUA腳本,接受前端網(wǎng)頁(yè)提交的數(shù)據(jù)包。
整個(gè)驗(yàn)收過(guò)程中,CPU占用率高達(dá)100%,設(shè)備整體響應(yīng)緩慢,甚至偶爾死機(jī)重啟。后來(lái)我們研究了ngnix的相關(guān)配置,發(fā)現(xiàn)沒(méi)有相關(guān)配置,甚至交叉編譯相關(guān)模塊,只配置了下載負(fù)載。
后天,我們修改了LUA的劇本。接收到一個(gè)包并處理后,在睡眠的毫秒內(nèi)整個(gè)上傳速率略有下降,但cpu利用率下降到40%左右,系統(tǒng)穩(wěn)定性大大增加。
我覺(jué)得node.js應(yīng)該也是類似的道理,樓主也可以用這個(gè)思路,在做了一些操作之后,睡一會(huì)兒,釋放資源給系統(tǒng)。
如果是多核cpu,樓主可以做一些合理的配置。
密集計(jì)算的邏輯直接用c寫。