簡體   English   中英

iPhone內存管理背后/內部究竟是什么?

[英]What's exactly behind / inside iPhone memory management?

這個問題不是關於iphone內存管理中保留/釋放的東西。 我非常了解這個例程,我的應用程序中沒有內存泄漏的東西。

當我使用Activity Instruments監視我的應用程序的整體內存活動時,我會彈出標題中顯示的問題。

該儀器始終顯示我的應用程序正在使用的“真實內存”量保持在21 MB到30 MB之間,從不高。 我認為這個數額相對不大。 但是,有時候,我的應用程序會給出1級或2級內存警告(從不崩潰,我的代碼中沒有為此警告做任何事情)。

所以我想知道iPhone背后的東西究竟是什么。 我的意思是,真正的記憶是唯一觸發警告的東西嗎? 或者還有什么其他的(比如虛擬內存,如儀器中所示)我應該照顧整個內存?

雖然我的應用程序永遠不會因為內存問題而崩潰,但這個警告事件(尤其是2級警告)確實讓我感到煩惱,並且一旦我將其發布給公眾,我就會害怕崩潰。

有幫助嗎?

謝謝

存在內存警告,告訴您的應用程序即將接近您的限制。 它們不一定是“壞”的東西 - 許多應用程序只是忽略它們。

關於何時觸發內存警告的實際實現細節並不重要,實際上在不同設備之間會有很大差異。 iPhone 4可能有512MB的RAM供玩,但3GS只有一半。

也就是說,有些事情值得了解內存警告:

  • 當可用內存的總量達到一定程度時,將會觸發內存警告
  • 這些級別沒有記錄 所以你不知道1級警告和2級警告之間有什么區別,除了事實2比1更嚴重(更緊急)
  • 內存警告不是特定於應用程序的。 內存警告將傳遞給當前正在運行但未暫停的所有應用程序。 所以你可能不直接負責觸發一個。
  • 收到內存警告后,系統將嘗試代表您釋放內存

同樣,確切的實現細節沒有記錄,您不需要關心它們。 內存警告是您通過釋放任何不需要的對象來幫助系統的機會。

暫無
暫無

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

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