NAME
Devel::Size - Perl extension for finding the memory usage of Perl variables
SYNOPSIS
use Devel::Size qw(size total_size);
my $size = size("A string");
my @foo = (1, 2, 3, 4, 5);
my $other_size = size(\@foo);
my $foo = {a => [1, 2, 3],
b => {a => [1, 3, 4]}
};
my $total_size = total_size($foo);
DESCRIPTION
This module figures out the real sizes of Perl variables in bytes. Call functions with a reference to the variable you want the size of. If the variable is a plain scalar it returns the size of the scalar. If the variable is a hash or an array, use a reference when calling.
FUNCTIONS
size($ref)
The size
function returns the amount of memory the variable returns. If the variable is a hash or an array, it only reports the amount used by the structure, not the contents.
total_size($ref)
The total_size
function will traverse the variable and look at the sizes of contents. Any references contained in the variable will also be followed, so this function can be used to get the total size of a multidimensional data structure. At the moment there is no way to get the size of an array or a hash and its elements without using this function.
EXPORT
None but default, but optionally size
and total_size
.
BUGS
Doesn't currently walk all the bits for code refs, globs, formats, and IO. Those throw a warning, but a minimum size for them is returned.
AUTHOR
Dan Sugalski dan@sidhe.org
SEE ALSO
perl(1).