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 totalsize() 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 tracksize() 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"