在Adobe AIR中降低CPU的利用率

2021-06-18 04:00:06 字數 1669 閱讀 8907

由於air是在執行時資源膨脹,占用了很多的寶貴的記憶體和cpu,導致air的執行速度很差。雖然很多的air應用看起來都陷入這樣的圈套,但是它也可以不要這樣。你可以通過很多種的技術開發乙個輕量級的應用程式以對抗傳統的程式執行。

幀頻控制是乙個減少cpu使用的簡單的方法。在此文中,我講解釋什麼是幀頻控制和如何在執行你的應用程式中最好的利用幀頻控制。

注:為了能夠更好的理解此文,你得具備actionscript和air應用程式開發的一些基本的知識。

什麼是幀頻控制

幀頻控制是一種控制應用程式的幀頻以達到增加應用程式表現能力的一種技術。(當在使用應用程式或者在空閒時候減少資源浪費)。在actionscript3.0中,開發人員有乙個非常有用的的屬性-stage。framerate。這個寶貴的屬性可以讓你快速改變幀頻。在之前的actionscript版本中,我們只能在ide設定它時候死磕。非常感謝,今時已不同往日,我們無需再忍受後台有乙個延遲的使處理器如負重擔的應用程式。 

如何實現幀頻控制

由於實現幀頻控制其本質是設定stage.framerate 屬性值為高或者為低的問題,這全都要開發者自己去決定。這個也取決於應用程式自己-有些應用程式比其它的允許更多的整合哦那個和。

注:以下示例的執行結果是在macbook pro 2.8 ghz intel core 2 duo上面完成的。由於電腦cpu的使用條件不同,結果也會在不同的電腦有所差異。

新手級最原始的控制形式是用過本地應用程式的event.activate 和event.deactivate事件-當啟用時增加幀頻,非啟用時降低幀頻。對於乙個單獨的空白視窗,結果是cpu在啟用時使用為1.8%,而非啟用狀態時是.4%。實際上你在非啟用狀態的時候設定幀頻到.01可以達到cpu使用率為.2%,但是在測試的時候,我發現window chrome不會失焦。

中級普通的應用程式允許更改的更高階的幀頻控制-例如,乙個需要一定互動的應用程式,即使是在後台。我們說,你的應用程式擁有可供參考的可滾動式的內容,由於air允許滑鼠輪在不同的應用當中滾動,此時你需要乙個更高的幀頻。

在此示例中,如果應用程式是在後台,但是滑鼠卻在滾動,mouseevent.mouse_wheel 的管理器增加幀頻,設定乙個event.enter_frame事件將在滾動之後用來減少幀頻。 為防萬一,最好設定乙個緩衝,這樣你就不會在任何滾動的時候都改變幀頻,同時,在滑鼠輪空閒時也不會它也不會有監聽的事件。

專家級如果你生來是為優化程式而存在,那麼你可以用一些比較複雜的幀頻控制手段來讓別人對你尖叫和景仰。(備:對你的女朋友無效)

在我的應用程式中,為了有乙個更平滑的環境和乙個更好的感覺,我喜歡讓事物從乙個狀態轉到下乙個狀態。有鑑於此,我比較喜歡用高幀頻(50)。不幸的是,幀頻越高,cpu利用也就越高。因此,我僅在乙個補間動畫(tween)啟用的時候才使用50的幀頻。當非補間動畫啟用的時候,我使用24的幀頻。除此之外,當應用程式在後台且載入器(loader)執行的時候有很多元素(instances)。載入器並不需要50幀每秒(fps)的幀頻,所以,當應用程式在後台可見時,我將把幀頻設定到5,如果應用程式在後台不可見時,我會把幀頻設定為1。 

注:對於此示例,我會在每個補間動畫前使用乙個animate()方法來訪問。理想的狀況是,你會想要建立乙個幀頻控制器到你的補間動畫引擎,所以你無需手動訪問animate()方法。

幀頻控制是優化你的air應用程式的執行能力的乙個小章節。這是你保持低資源消耗的入門級的步驟和基本的概念。這樣的心裡和練習可以很容易的帶入更多的程式響應,增加使用者的體驗。

通過降低CPU頻率 達到降低功耗的目的

最近用一台老機子h61 i5 2320 p106 100 作為ai伺服器 系統用的是centos 7。系統對cpu的依賴度不大,能正常開機 集顯能正常輸出就好,主要是依靠 礦卡進行ai計算。然而由於 i5 2320的 tdp 高達95w 開機實測整機待機功耗接近90w cpu gpu 非常的不節能 ...

WordPress降低占用CPU量的5個方法

今天晚上我收到主機方的郵件,提示我占用cpu太高,需要我在48小時內調整,如果不調整將會關閉我的 空間賬戶。我相信很多朋友也會遇到這樣的問題,一般海外主機都會有這樣的。雖然海外主機的空間容量和流量不受限制,但是如果超過cpu量也是會受限。那我們如何調整呢?下面我把自己採程式設計客棧用的5個方 法分享...

在訓練的過程中降低學習率

隨著學習的進行,深度學習的學習速率逐步下降 為什麼比 固定的學習速率 得到的結果更加準確?如上圖所示,曲線代表損失值,小球一開始位於 1 處,假設學習速率設定為 v,那麼根據梯度下降,損失值將在 1 2 之間來回移動,無法到達最小值 3 處。要想到達 3 只能降低學習速率。keras中實現方法 le...