I guess that means that my bitvector technique will be of short-lived utility, but for now, it is doing sterling service for me.

That said, even if they manage to reduce the size of SV headers to 8 bytes (they'll still need the flags and type fields won't they?), then that still means that using a bitvector would only require 64 MB to handle a 32-bit/4GB address space and with many OS/32-bit processors, your restricted to 2GB anyway, so 32 MB max.

That's still way less than Data::Dumper currently uses for a 500 MB HoHoA which would only require < 8MB. Admittedly, D::D does do rather more than just detect self-refs which is all I need.

That said, the technique is so fast, that it wouldn't be a great burden doing two passes. The first simply sets the bits. The seconds then only need rcord the salient information for the refs that are self refs. The reduction in memory allocations may even achieve a time saving as well.


Examine what is said, not who speaks.
Silence betokens consent.
Love the truth but pardon error.

In reply to Re^4: Circular reference testing. by BrowserUk
in thread Circular reference testing. by BrowserUk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.