Memory::Usage - Aktuelle Speichernutzung

| | Kommentare (1)

Memory::Usage von David O'Neill zeigt den aktuellen Speicherbedarf eines Programms aus der Sicht des Betriebssystems an. Da hierzu die Datei /proc/$pid/statm genutzt wird, funktioniert Memory::Usage derzeit nur auf Betriebssystemen, welche diese Datei zur Verfügung stellen, z.B. Linux.

Memory::Usage untergliedert die Speichernutzung wie folgt:

  • virtual memory size (vzs)
  • resident set size (rss)
  • shared memory size (shared)
  • text (aka code or exe) size (code)
  • data and stack size (data)

 

Beispiel

Im diesem Beispiel wird der Speicherverbrauch vor und nach dem Aufbau einer speicherhungrigen Datenstruktur mit record() gemessen. Anschließend wird ein Report auf den Standardfehlerkanal STDERR via dump() ausgegeben.

#!/usr/bin/perl
use strict;
use warnings;

use Memory::Usage;

my $mu = Memory::Usage->new();

my %hash = ();

# Record amount of memory used by current process
$mu->record('starting work');

# Use some memory
for ( 1 .. 10_000_000 ) {
	$hash{ $_ } = 1;
}

# Record amount in use afterwards
$mu->record('finished work');

# Spit out a report
$mu->dump();

exit();

Das Programm liefert folgende Ausgabe:

time    vsz (  diff)    rss (  diff) shared (  diff)   code (  diff)   data (  diff)
    0   5304 (  5304)   2072 (  2072)   1652 (  1652)   1244 (  1244)    692 (   692) starting work
   37  834004 ( 828700) 830784 ( 828712)   1676 (    24)   1244 (     0)  829392 ( 828700) finished work

Die Laufzeit wird in Sekunden angeben, alle Speicherangaben in Kilobytes. Memory::Usage rechnet intern pages in Kilobyte um (4 kb je page).

 

Siehe auch:

1 Kommentare

Jetzt kommentieren

Über diese Seite

Diese Seite enthält einen einen einzelnen Eintrag von Thomas Fahle vom 11.09.11 22:19.

Talk: Ricardo Signes - Perl 5.14 for Pragmatists ist der vorherige Eintrag in diesem Blog.

Vortragsprogramm des 13. Deutschen Perl-Workshops (19.10.2011 bis 21.10.2011) ist online ist der nächste Eintrag in diesem Blog.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.