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);
$m->reset;
my @report = $m->report;
my $report = $m->report;
$m->state;

METHODS

new(%params)
Constructor.
dump()
Print report to STDERR.
Returns return value of print().
record([$message, $pid])
Set record.
If message not set, use ''.
Returns undef.
report()
Get report.
In scalar context returns string with report.
In array context returns array of report lines.
First line is title.
reset()
Reset records.
Returns undef.
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

# Pragmas.
use strict;
use warnings;

# Modules.
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

# Pragmas.
use strict;
use warnings;

# Modules.
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/tupinek/Memory-Process

AUTHOR

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

http://skim.cz/

LICENSE AND COPYRIGHT

© 2014-2015 Michal Špaček
BSD 2-Clause License

VERSION

0.04