Revision history for Devel::Size::Report 2008-04-06 v0.13 Tels 147 tests * require at least Perl 5.006 (Devel::Size doesn't compile on 5.005) * fix failing tests on v5.10 and version 2008-03-28 v0.12 Tels 148 tests * fix failing tests (due to bugfix in Devel::Size, thanx Wolfgang Schemmel!) * add POD tests and POD coverage tests * fix POD errors revealed by coverage testing * require at least Perl 5.005002 2006-09-09 v0.11 Tels 146 tests * clean up Makefile.PL * add a SF_MAGIC() flag (not yet used) * fix failing tests under 64 bit (need to add more than 7 bytes) * fix undef warning from blessed() * "use constant" instead of "sub () ..." Older revision history: 2004-01-06 v0.01 Tels 42 tests (not released) * first release with: report_size(), track_size(), element_type(), entries_per_element() 2004-01-09 v0.02 Tels 42 tests * fixed bug in calculating overhead with contained hashes * added example/psize 2004-01-10 v0.03 Tels 49 tests * psize: don't print out added "use" statements * report_size(): print overhead in %, too (Thanx nadim!) * knows about CODE, REGEXP, LVALUE and Scalar refs and prints them correctly * stop at cyclic references (e.g. don't loop forever) * disable Devel::Size warnings (about incomplete CV etc, thanx nadim!) * drop the "Key " from the output, it is rendundand (thanx nadim!) * report_size: bytes => '' in $options works correctly now (thanx nadim!) 2004-01-10 v0.04 Tels 55 tests * fixed the bug that sometimes looking at a scalar again after looking at a longer scalar reported the wrong (bigger) size. $pre = shift vs. $_[0] usage in total_size() was the culprit (slot reusing). Thanx Sadahiro! * Size report outputs version of Devel::Size::Report, too * refactored tests into three files, added some more tests * use Scalar::Util to get reftype and refaddr * added option 'addr' to report_size() to print elem address * example/psize takes options as second string argument 2004-01-13 v0.05 Tels 76 tests * references to ARRAY, HASH are handled properly * references to SCALARs are now reported likewise than ARRAY/HASH refs * fixed indendation bug with hash keys pointing to SCALARs * more tests, especially for the addr => 1 feature * psize takes options as single-letter abbrev., too * added option "class" to optionally show classnames 2004-10-18 v0.06 Tels 76 tests * fixed example/size.pl - duh! * some small cleanups in comments in Report.pm * amended TODO * scalar references (\0) are now reported with their correct size 2004-10-23 v0.07 Tels 100 tests * rename S_KEY and S_REF to SF_KEY and SF_REF * document exportable methods * small comments added * The "Total" line now includes the number of elements * added options 'terse' (supresss gory details) and 'summary' (include per-class overview at end of report) to report_size() * added S_VSTRING * added SF_WEAK, SF_RO, SF_DUAL * simplify test code by using like() * added 'te' and 's' option to psize * added more examples to example/size.pl 2004-11-10 v0.08 Tels 116 tests (released 2005-02-27) * confess() if options to report_size() is not a hash * option debug: print time and memory used to make stats * streamline element_type() * report_size(): inline element_type() for a tad more speed * use undef instead of '' for unblessed things to save a bit of memory * more tests (element_type, type, options, double ref, cycles) * return blessed() from _type() and use it to avoid second call to blessed() * fix bug with double scalars in a hash (f.i. via Array-RefElem) * use Array-RefElem to save about 50% of the %SEEN hash (which represents about 3-6% of the memory when generating reports on huge structures) 2005-02-27 v0.09 Tels 122 tests * Don't need to track simple scalars with a REFCNT of 1 in the SEEN hash, this reduces the memory overhead quite a bit * add option "track_doubles", that only tracks double/shared hash keys and array elemts if requested. Default is off, this saves memory. * Rewrote _track_size() to modify a global array instead of passing the results back via the stack. This avoids that the entire results array exists temporarily twice when returning the results and speeds up anything by a factor of two to three :o) * add a test for "Glob" * streamline array and hash member tracking (for simple elements) * streamline type() * add track_sizes() and hide_tracks() 2005-03-04 v0.10 Tels 145 tests * amend README, SYNOPSIS, example/size.pl * psize: support for option "d", print help if no arguments are given * indend => indent (Thanx Jim Cromie!) * sizes for array/hash refs were missing the ref itself (16 bytes on 32 bit systems, more on 64 bit). This also makes "[]" and "[ 1, [] ]" report consistent sizes for the inner array. * compute correct size for circular references * rewrote the size-gathering code to use size() instead of total_size(), this makes it much faster, especially for deep structures and ones with cycles * track_size() and track_sizes() also need to honor option "doubles" * does no longer warn about "deep recursion"