The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

 Memory::Process - Perl class to determine actual memory usage.

SYNOPSIS

 use Memory::Process;

 my $m = Memory::Process->new(%params);
 $m->dump;
 $m->record($message, $pid);
 my @report = $m->report;
 my $report = $m->report;
 $m->reset;
 $m->state;

METHODS

new

 my $m = Memory::Process->new(%params);

Constructor.

Returns instance of object.

dump

 $m->dump;

Print report to STDERR.

Returns return value of print().

record

 $m->record($message, $pid);

Set record. If message not set, use ''.

Returns undef.

report

 my @report = $m->report;
 my $report = $m->report;

Get report.

In scalar context returns string with report. In array context returns array of report lines. First line is title.

reset

 $m->reset;

Reset records.

Returns undef.

state

 $m->state;

Get internal state.

Each state item consists from:

 - timestamp (in seconds since epoch)
 - message (from record())
 - virtual memory size (in kB)
 - resident set size (in kB)
 - shared memory size (in kB)
 - text size (in kB)
 - data and stack size (in kB)

Returns reference to array with state items.

EXAMPLE1

 use strict;
 use warnings;

 use Memory::Process;

 # Object.
 my $m = Memory::Process->new;

 # Example process.
 $m->record("Before my big method");
 my $var = ('foo' x 100);
 sleep 1;
 $m->record("After my big method");
 sleep 1;
 $m->record("End");

 # Print report.
 print $m->report."\n";

 # Output like:
 #   time    vsz (  diff)    rss (  diff) shared (  diff)   code (  diff)   data (  diff)
 #      1  19120 (     0)   2464 (     0)   1824 (     0)      8 (     0)   1056 (     0) After my big method
 #      2  19120 (     0)   2464 (     0)   1824 (     0)      8 (     0)   1056 (     0) End

EXAMPLE2

 use strict;
 use warnings;

 use Data::Printer;
 use Memory::Process;

 # Object.
 my $m = Memory::Process->new;

 # Example process.
 $m->record("Before my big method");
 my $var = ('foo' x 100);
 sleep 1;
 $m->record("After my big method");
 sleep 1;
 $m->record("End");

 # Print report.
 my $state_ar = $m->state;

 # Dump out.
 p $state_ar;

 # Output like:
 # \ [
 #     [0] [
 #         [0] 1445941214,
 #         [1] "Before my big method",
 #         [2] 33712,
 #         [3] 7956,
 #         [4] 3876,
 #         [5] 8,
 #         [6] 4564
 #     ],
 #     [1] [
 #         [0] 1445941215,
 #         [1] "After my big method",
 #         [2] 33712,
 #         [3] 7956,
 #         [4] 3876,
 #         [5] 8,
 #         [6] 4564
 #     ],
 #     [2] [
 #         [0] 1445941216,
 #         [1] "End",
 #         [2] 33712,
 #         [3] 7956,
 #         [4] 3876,
 #         [5] 8,
 #         [6] 4564
 #     ]
 # ]

DEPENDENCIES

Memory::Usage, Readonly.

SEE ALSO

Memory::Stats

Memory Usage Consumption of your process

Memory::Usage

Tools to determine actual memory usage

REPOSITORY

https://github.com/michal-josef-spacek/Memory-Process

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz/

LICENSE AND COPYRIGHT

© 2014-2023 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.06