我有一個Flex應用程序。令人驚訝的是,當我的筆記本電腦上運行時,它使我的CPU保持在〜50%的負載(它在40%和60%之間波動)。該筆記本電腦是一個4歲的戴爾模型 - CPU是Intel T1350 @ 1.86GH。奇怪的是,即使它沒有做任何事情,應用程序仍然保持我的CPU爲50%。它是一個靜態的,相當複雜的Flex屏幕。我沒有運行效果,沒有服務器通信,沒有動畫。當然,它有效果和類似的動態行爲,但在這個測試中,我沒有碰它。我只是加載它,它保持靜態,但仍然是CPU的50%。 當然,我介紹了應用程序,但它並沒有給我很多有用的信息。我甚至在瀏覽器被另一個窗口隱藏的情況下對應用程序進行了剖析(仍然CPU很高),大部分時間都用在了這三個項目中:Timer.tick - 54.5%,[enterFrameEvent] - 21.5%和[reap] - 12.5%。所有這些都是自我時代,即不在這三種情況下調用的其他方法。Flex應用程序的高CPU使用率
任何想法可能會導致如此高的CPU使用率非常歡迎。 ...或接近如何確定根本原因。
附加信息: 當我的開發機器(CPU Intel Core 2 Quad Q6600 @ 2.4 GH)上運行相同的應用程序時,利用率下降到16%,因爲CPU速度快了幾倍,但仍然太多用於靜態屏幕和這個快速的CPU。另外,如果我用IE運行它(上面所有的數字都是FF),那麼CPU利用率接近0%。我猜ActiveX Flash播放器版本通過將工作委託給GPU(我的視頻卡)來卸載CPU,但這隻適用於IE +良好視頻卡的情況,這不是我可以爲大多數用戶做出的假設。
我也注意到,提高FPS高達60(以上數字是默認24 FPS)這並不能真正改變了CPU的負載。將FPS降低到12會減少CPU負載,但不成比例,這不能解決這個問題。
我傾向於認爲這個問題是關係到UI層次我。它可能對於Flash播放器來說太複雜和/或嵌套,但是爲什麼當屏幕完全靜止時應該花費CPU時間。
需要幫助。
謝謝!