2014-12-03 44 views
1

我正在嘗試爲iOS 8開發一個鍵盤擴展。除了我遇到的各種問題(顯而易見,擴展只是一種後續思考)測試在iPhone 6,我發現,該擴展隨機地崩潰日誌終止具有一個條目,例如這樣的:iOS鍵盤擴展以「per-process-limit」終止

Name  |   <UUID>    |  CPU Time|  rpages|  purgeable| recent_max| lifetime_max| fds | [reason]   | (state) 
MyKeyboard <93dea1cc8757387ba5e7da3006a7d23f>   0.638  13072    0   -   8483 50 [per-process-limit] (frontmost) 

注意,這種情況發生在iPhone 6和iPhone 6加,但沒有按」這種情況發生在iPhone 4S功能較弱(內存較少,但不是64位)的情況下。

當然,在設備上調試時不會發生這種情況。

此外,如果我運行與應用程序完全相同的代碼而不是擴展程序,則不會發生這種情況。

當使用Quartz繪製線條時,或者更容易地使用Apple CoreTextArcCocoa類的衍生物將屬性字符串呈現爲弧線時,終止似乎發生得最多。 分析器顯示,從來沒有CPU使用率,應用程序中的RAM使用量是適度的15-25MB。當我使用幾個弧形文本視圖(主要與屬性字符串有關)時,有很多分配/釋放,所以我想可能是快速分配(即使它們後面有解除分配)會觸發一些終止擴展的iOS進程,因爲擔心佔用太多內存?但是如果我不知道確切的觸發器,如何對它進行編碼?當然,我想不出調試這個問題的方法,因爲它在我的應用程序之外。 我嘗試使用我的開發者計劃門票之一與Apple打開一張關於它的門票。我要求任何幫助,甚至只是對「每個進程限制」的更好解釋。他們沒有迴應就關閉並退款。我重新打開要求至少有一個關閉第一張票的理由,他們關閉並退還。 關於究竟發生了什麼或我可以嘗試的任何想法?

僅供參考下面是來自同一個崩潰日誌的完整MEM統計:

Free pages:        9054 
Active pages:       122754 
Inactive pages:       48617 
Speculative pages:      235 
Throttled pages:       0 
Purgeable pages:       4696 
Wired pages:        67788 
File-backed pages:      81292 
Anonymous pages:       90314 
Compressions:       15775 
Decompressions:       3940 
Compressor Size:       1364 
Uncompressed Pages in Compressor:  4383 
Page Size:        16384 
Largest process: backboardd 

回答

4

它看起來像有鍵盤擴展無證內存限制。大約40Mb。您的鍵盤花費了大量的時間* 4kb = 51Mb

+0

我在文件提供商擴展中看到類似10Mb左右的東西。你知道其他擴展類型的其他限制嗎? – Locksleyu 2016-02-05 14:51:16