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
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
LICENSE AND COPYRIGHT
© 2014-2023 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.06