This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Data::Dumper: Option to avoid building much of the seen hash
authorSteffen Mueller <smueller@cpan.org>
Thu, 2 Aug 2012 16:51:19 +0000 (18:51 +0200)
committerSteffen Mueller <smueller@cpan.org>
Thu, 2 Aug 2012 18:09:10 +0000 (20:09 +0200)
commitd424882cc3537598b5c65fc8a4426bf49da5d903
treecfdfadd9c521eab55bdce01b86502162837c97b8
parent08b2a930f16c631ad58d4ec6d184e81c0a4ec7b6
Data::Dumper: Option to avoid building much of the seen hash

If the "$Sparseseen" option is set by the user, Data::Dumper eschews
building the seen-this-scalar hash for ALL SCALARS but instead just adds
those that have a refcount > 1. Since the seen hash is exposed
to the user in the OO interface (rats!), this needs to be opt-in in if
OO is used.

If the DD constructor is called from Dumpxs (because the user used the
functional interface as customary), then this option could be
implicitly enabled in those cases as the seen hash is never visible to
the user.

In my real-world-data benchmark, setting this option speeds up
serialization by about 50%!

This is really Yves Orton's idea. I'm just the code monkey on this one.
dist/Data-Dumper/Dumper.pm
dist/Data-Dumper/Dumper.xs
dist/Data-Dumper/t/dumper.t