0
b7f27000     84K r-x--  /lib/libpthread-2.5.so
b7f3c000      4K -----  /lib/libpthread-2.5.so
b7f3d000      4K r----  /lib/libpthread-2.5.so
b7f3e000      4K rw---  /lib/libpthread-2.5.so
b7f3f000      8K rw---    [ anon ]
b7f41000     88K r-x--  /lib/libselinux.so.1
b7f57000      8K rw---  /lib/libselinux.so.1
b7f59000    256K r-x--  /usr/lib/libncurses.so.5.5
b7f99000     32K rw---  /usr/lib/libncurses.so.5.5
b7fa1000      8K rw---    [ anon ]
b7fa3000      4K r----  /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
b7fa4000      4K r----  /usr/lib/locale/en_US.utf8/LC_PAPER
b7fa5000      4K r----  /usr/lib/locale/en_US.utf8/LC_NAME
b7fa6000      4K r----  /usr/lib/locale/en_US.utf8/LC_ADDRESS
b7fa7000      4K r----  /usr/lib/locale/en_US.utf8/LC_TELEPHONE
b7fa8000      4K r----  /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
b7fa9000      4K r----  /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
b7faa000    108K r-x--  /lib/ld-2.5.so
b7fc5000      4K r----  /lib/ld-2.5.so
b7fc6000      4K rw---  /lib/ld-2.5.so
bf96f000    228K rw---    [ stack ]
 total    23740K

なぜこれらのようにlibがより多くの時間をロードされるのですか?それは必要ですか?なぜ?

4

1 に答える 1

3

実際には、これらのライブラリはそれぞれ 1 回だけロードされます。表示されているのは、各ライブラリで使用される複数のメモリ領域です。

ライブラリには、コード、rodata、およびデータ (+bss) が含まれています。コードは読み取り専用で実行可能 ( r-x)、rodata は読み取り専用 ( r--)、データ (および bss) は読み書き可能 ( rw-) です。これらは、あなたが見ているメモリ セグメントです (メモリ保護フラグとサイズがすべて異なることに注意してください)。すべてのライブラリにこれらのセグメントがすべてあるわけではないため、一部のライブラリには 2 つ (または 1 つ) のメモリ領域しかマップされていないことがわかります。

pmapの「合計」出力は、仮想メモリの使用率のみを測定することに注意してください(小さなプロセスでも非常に高くなる可能性があります)。物理メモリの使用については、(常駐セット サイズ)を使用pmap -xして参照してください。RSS

于 2012-09-21T05:12:30.483 に答える