移動端測試===Android記憶體管理: 理解App的PSS

來源:互聯網
上載者:User

標籤:進程安全   運行   ==   順序   ice   src   tle   移動   相同   

Android記憶體管理: 理解App的PSS

原文連結:http://www.littleeye.co/blog/2013/06/11/android-memory-management-understanding-app-pss/

當在應用程式上運行Little Eye時,在記憶體視圖中,會報告有關應用程式記憶體的3個重要統計資訊。 Dalvik記憶體使用量情況,即Java堆消耗的記憶體量,Native記憶體,即JVM外部進程使用的記憶體量。

然後是第三個統計量,被稱為“PSS”。 什麼是PSS?

Propotionate Set Size(比例集大小)

“比例集大小”是Android系統計算的統計資訊,以確定是否要殺死您的進程。 只看你的應用程式消耗多少記憶體,是不正確的方式,因為你的應用程式可能與其他進程使用一些共用記憶體,責怪你的應用程式正在使用任何共用記憶體是“不公平”的。 Android系統可能會殺死使用太多記憶體的應用程式(尤其是如果應用程式在後台),因此Android系統需要找到一種方法來可靠地計算應用程式負責的記憶體量。

什麼是共用記憶體?

Android是一個基於Linux的系統,Linux使用“共用”頁面來跨進程共用相同的記憶體。 共用記憶體的一個常見用途是在進程之間共用“代碼”記憶體頁(載入唯讀可執行代碼的記憶體地區)。 外部庫和JVM的可執行代碼是可以跨進程安全共用的記憶體地區的樣本。 還可以是資料頁,其是“寫時複製”,其可以在進程之間臨時共用,直到一個進程修改共用儲存空間。

技術應用“真實”記憶體使用量

因此,為了“公平”技術應用使用的記憶體,Android使用了PSS統計量。基本上,它是您的應用程式消耗的非共用記憶體和可以“歸因於您的應用程式”的共用記憶體部分(與其他進程共用的記憶體)/(分享共用記憶體的進程數量)的和。

現在,Android有一個“更公平”的方式來計算誰消耗了大量的記憶體,Android將按照PSS由大到小的順序開始殺死進程。

作為一個開發人員意味著什麼?

如果你的應用程式得到非常高的PSS分數,你的應用程式可能會被Android系統殺死。 也許這是你可以處理的東西,但是在後台被意外殺死可能會對你的應用程式造成影響,特別是如果你依靠一些後台Activity或Service來進行工作。 確保您的應用程式的PSS不是太高,特別是當您的應用程式進入後台。 進入後台後,釋放不在吸引的記憶體和對象,並斷開任何不再需要的共用記憶體,你不再需要,可能是一個好主意。 這將減少你的意外被Android系統殺死的機會。

要記住的一點是,PSS沒有“硬限制” - 不能保證你的應用程式超過某個閾值將被殺死,或者保證低於某個閾值可以生存。 應用程式不在前台時,必須做好任何時間被殺死的準備。如果PSS值較低,它有助於減少那些機會。

移動端測試===Android記憶體管理: 理解App的PSS

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.