Ich weiß, dass VSZ in ps
für den gesamten Adressraum bestimmt ist, der für die App zugewiesen wurde, und manchmal als vsize (in der Manpage von ps
Linux erwähnt) aliasiert wird , aber wie lautet die Definition von VSIZE in top
? Diese Top-Ausgabe vom iPhone unterscheidet sich von der Top-Ausgabe unter Linux:
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE
1875 emma 0.0% 0:30.83 7 139 932 17868K 5328K 29M 181M
root# ps -eo pid,rss,vsz|grep 1875
1875 29324 441324
top
auf IOS schließt nicht gemeinsam genutzte Objekte in vsize, oder so etwas.Antworten:
Das Linux-Speichersystem ist mit vielen Routinen von Dienstprogrammen zur Speicheroptimierung und Speicherfreigabe gefüllt, die die Vorstellung, wie Speicher gemeinsam genutzt und verbraucht wird, zu einem umständlichen Ansatz machen. Die Ausgabe von ps und anderen ps-bezogenen Befehlen verarbeitet alle ihre Datenausgabe unter
/proc
Dateisystem. Insbesondereps
, RSS (Resident Size Memory) und VSIZE (Virtual Memory Size) sind beide wichtig, jedoch zeigt VSIZE nicht die genaue Nutzung des Speichers an und der Unterschied zwischen VSIZE und RSS ist das, was während der Initialisierung tatsächlich beabsichtigt und dem Programm zugewiesen wird darf noch nicht referenziert werden. Wie das Programm kann viele Bibliotheken verknüpft sein, aber sie sind noch nicht geladen, da sie in der tatsächlichen Programmlaufzeit noch nicht referenziert sind. RSS gibt den gesamten vom Programm tatsächlich verwendeten Speicher an, liefert jedoch möglicherweise kein genaues Bild des Speicherverbrauchs, da der größte Teil des zugewiesenen Speichers mit anderen Instanzen desselben Prozesses oder anderen Prozessen geteilt werden kann. Ein Blick nach unten/proc/<processid>/maps
kann eine ungefähre Vorstellung davon geben, wie der Speicher verwendet wurde, aber sie können manchmal irreführend sein. Benutzenpmap -x <pid>
Von der Kommandozeile aus ist es nützlich, die Ausbreitung zu sehen.Die oft besseren Dienstprogramme sind
free
undvmstat
.free
Sie erhalten Informationen zum aktuellen Speicherverbrauch und vmstat kann verwendet werden, um zu sehen, wie oft es aktualisiert wird.quelle