VSS/RSS/PSS/USSに関する説明を読みました。
この投稿の目的は、さまざまなツールからのメモリレポートの解釈に役立つ情報を提供して、Linuxプロセスおよびシステムの実際のメモリ使用量を判断できるようにすることです。
Androidにはprocrank(/ system/xbin/procrank)というツールがあり、Linuxプロセスのメモリ使用量を使用率の高い順にリストします。プロセスごとに報告されるサイズは、VSS、RSS、PSS、およびUSSです。
この説明を簡単にするために、メモリはバイトではなくページで表されます。私たちのようなLinuxシステムは、最低レベルで4096バイトページのメモリを管理します。
VSS(psからVSZとして報告される)は、プロセスのアクセス可能な合計アドレス空間です。このサイズには、RAMに割り当てられているが書き込まれていないmallocのように常駐していない可能性のあるメモリも含まれます。VSSは、プロセスの実際のメモリ使用量を決定するのにほとんど役に立ちません。
RSSは、プロセスのRAMに実際に保持されている合計メモリです。RSSは、共有ライブラリがロードされている場合でも、プロセスが使用する共有ライブラリの合計を報告するため、誤解を招く可能性がありますRSSは、1つのプロセスのメモリ使用量を正確に表すものではありません。
PSSは、共有ライブラリの比例サイズを報告するという点でRSSと異なります。つまり、3つのプロセスがすべて30ページの共有ライブラリを使用する場合、そのライブラリは、3つのプロセスのそれぞれについて報告されるPSSに10ページのみを提供します。 PSSは、システム内のすべてのプロセスのPSSを合計すると、システム内の合計メモリ使用量を適切に表すため、非常に有用な数値です。プロセスが強制終了されると、そのPSSに貢献した共有ライブラリは、そのライブラリをまだ使用している残りのプロセスのPSS合計に比例して分配されます。このように、プロセスが強制終了されると、PSSはシステム全体に返されるメモリを正確に表さないため、PSSがわずかに誤解を招く可能性があります。
USSは、プロセスの合計プライベートメモリです。つまり、そのプロセスに完全に固有のメモリです。 USSは、特定のプロセスを実行する実際の増分コストを示すため、非常に有用な数値です。プロセスが強制終了されると、USSは実際にシステムに返される合計メモリになります。 USSは、プロセスでメモリリークが最初に疑われるときに監視するのに最適な数値です。
Pythonが利用可能なシステムの場合、smemと呼ばれるこれらのすべてのカテゴリを含むメモリ統計をレポートするNiceツールもあります。
# procrank
procrank
PID Vss Rss Pss Uss cmdline
481 31536K 30936K 14337K 9956K system_server
475 26128K 26128K 10046K 5992K zygote
526 25108K 25108K 9225K 5384K Android.process.acore
523 22388K 22388K 7166K 3432K com.Android.phone
574 21632K 21632K 6109K 2468K com.Android.settings
521 20816K 20816K 6050K 2776K jp.co.omronsoft.openwnn
474 3304K 3304K 1097K 624K /system/bin/mediaserver
37 304K 304K 289K 288K /sbin/adbd
29 720K 720K 261K 212K /system/bin/rild
601 412K 412K 225K 216K procrank
1 204K 204K 185K 184K /init
35 388K 388K 182K 172K /system/bin/qemud
284 384K 384K 160K 148K top
27 376K 376K 148K 136K /system/bin/vold
261 332K 332K 123K 112K logcat
33 396K 396K 105K 80K /system/bin/keystore
32 316K 316K 100K 88K /system/bin/installd
269 328K 328K 95K 72K /system/bin/sh
26 280K 280K 93K 84K /system/bin/servicemanager
45 304K 304K 91K 80K /system/bin/qemu-props
34 324K 324K 91K 68K /system/bin/sh
260 324K 324K 91K 68K /system/bin/sh
600 324K 324K 91K 68K /system/bin/sh
25 308K 308K 88K 68K /system/bin/sh
28 232K 232K 67K 60K /system/bin/debuggerd
#
しかし、私はこの記事のオリジナルを見つけることができません。この説明が正確かどうか知りたいです。
それは正しいように聞こえ、ここにある説明とも一致します: http://elinux.org/Android_Memory_Usage
ページから...