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"