Wie, um zu bestimmen, CPU-und Speicher-Verbrauch von innerhalb eines Prozesses?

Ich hatte einmal die Aufgabe bestimmen Sie die folgenden performance-Parameter aus einer Laufenden Anwendung:

  • Gesamter virtueller Speicher zur Verfügung
  • Virtuellen Speicher derzeit verwendet
  • Virtuellen Speicher, der aktuell von meinem Prozess

  • Gesamt-RAM zur Verfügung
  • RAM derzeit verwendet
  • RAM, der aktuell von meinem Prozess

  • % CPU derzeit verwendet
  • % CPU-Zeit von meinem Prozess

War der code für die Ausführung auf Windows und Linux. Obwohl dies scheint eine standard-Aufgabe, das finden der notwendigen Informationen in den Handbüchern (WIN32-API, GNU docs) sowie auf das Internet hat mich mehrere Tage, weil es so viel unvollständige/fehlerhafte/veraltete Informationen zu diesem Thema zu finden gibt.

Um andere zu retten, gehen durch das gleiche Problem, ich dachte, es wäre eine gute Idee alle zu sammeln die verstreuten Informationen plus das, was ich durch Versuch und Irrtum gefunden, die hier in einem Ort.

"Gesamter virtueller Speicher verfügbar" ist sinnlos auf moderne Betriebssysteme.
Warum ist es sinnlos? Es tut erlischt die Antwort hier? stackoverflow.com/questions/3296211/... ... bitte nicht verlassen Cliffhanger, wenn zu kommentieren, es ist nicht eine TV-show.
Die Frage ist in etwa "total physical memory", das ist ein hardware bekannte Tatsache das OS. Sie bekommen die Summe, die durch addieren der Größen der alle Speicher-Module. "Gesamter virtueller Speicher verfügbar", auf der anderen Seite, was bedeutet das überhaupt? Ist, dass die Kombination von virtueller Adressraum aller Prozesse, die theoretisch erzeugt werden könnte? Diese Zahl würde um die 2^80 Byte, so dass sicherlich bedeutungslos.
danke für den Eingriff. Ich glaube, die Frage, was der OP im Sinn hatte, ist viel schonender und gesünder als die besagt, dass etwas sinnlos ist (w/o Erklärung). Wenn Sie beachten Sie, die Antworten sind auch unter der Annahme einer bestimmten position in Bezug auf diese: Virtueller Speicher = RAM + SWAP (oder AUSLAGERUNGSDATEI) - das ist eine vernünftige Annahme. Von diesem wissen wir, dass es nicht sinnlos, denn es ist insbesondere die Auslegung dieses Begriffes (die vielleicht nicht die technisch korrekte, colloquelism), das Sinn hat.
Ignoriert, dass memory-mapped-Dateien und code, der nicht ausgelagert. Linux ist nicht verpflichtet Speicherzuordnungen (nicht unterstützt von RAM oder swap) und Windows ist nicht verpflichtet stapeln.

InformationsquelleAutor Lanzelot | 2008-09-15

Schreibe einen Kommentar