簡體   English   中英

iOS 11 CPU限制和空閑計時器

[英]iOS 11 CPU throttling and idle timer

在iPhone SE上,升級到iOS 11.4后,我現在看到一個非常奇怪的CPU限制結果,大約8-10秒后。 我正在使用一個非常簡單的示例應用程序(部署目標設置為iOS 10.3),它顯示單個視圖並在調用drawInMTKView時執行解碼操作。 應用程序啟動時CPU使用率與預期值(10-15%)相同,但在8-10秒窗口后,CPU似乎被大量限制,以便以全CPU速度運行4-5 ms的幀解碼操作需要16-17 ms(CPU使用率約為60%)。 我試圖通過切換idleTimerDisabled標志來禁用任何iOS空閑計時器,但這似乎對此沒有影響。 有趣的是,從縱向旋轉到橫向將重置此限制,並且解碼將再次以全速運行,直到8-10秒的不活動再次限制它。 這可能會發生什么? 我已經讀過iOS 11包含一些新的電池管理代碼,但我的設備是新的,General-> Battery中的電池設置表明設備正在全速運行。 是否有其他應用程序標志或設置可以禁用此限制?

(full speed)
decode time 5.74 ms
decode time 5.87 ms
decode time 5.37 ms
decode time 5.81 ms
decode time 5.56 ms
decode time 5.97 ms

(after 8-10 second, reduced speed)
decode time 16.65 ms
decode time 16.65 ms
decode time 17.02 ms
decode time 16.49 ms
decode time 16.95 ms
decode time 16.03 ms

這可能與您的體驗有關:我們發現,對應用程序進行概要分析的行為可能會使這些版本的iOS在不合適時進入降頻狀態。 未連接到主機PC的版本構建中未發生此問題。

我們有一個應用程序,它的渲染循環運行時間不到8毫秒 - 遠低於60fps游戲所需的~16ms。 當連接到探查器時,目標設備將檢測到這一點和倒計時 - 但與探查器通信的開銷會將幀時間推遲超過16毫秒,從而產生30fps的游戲時間。

除了認識到它正在發生並將其考慮在內之外,我們沒有找到解決方案。 當我們向應用程序添加額外的渲染負載時,將其推遲超過8毫秒,問題就消失了,因為目標設備不再降頻。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM