Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^4: inside-out objects using arrays?

by fishbot_v2 (Chaplain)
on Sep 18, 2005 at 00:56 UTC ( [id://492950]=note: print w/replies, xml ) Need Help??


in reply to Re^3: inside-out objects using arrays?
in thread inside-out objects using arrays?

You could avoid that problem by assigning the index to the first undef slot, rather than straight incrementing:

my $instance_index = List::Util::first { !defined $_ } @name;

You end up, though, with an O(n) constructor. But perhaps the savings in access make up for this.

Replies are listed 'Best First'.
Re^5: inside-out objects using arrays?
by chromatic (Archbishop) on Sep 18, 2005 at 02:20 UTC

    If you really want to save memory, you may want to avoid pinning your inside-out array at the high-water mark. Store a stack of reclaimed indices and push to it in the destructor and shift from it when generating the reference for a new object. Then you can shrink the array if necessary.

    (When you ask "Wait, won't it stay at the high-water mark even if there were 1000 elements and are only two now?", I'll sigh and talk about compacting garbage collectors and double-indirection the other flaws in this scheme. Still, it's a fun idea.)

      Hey, that's neat. I'll have to think about that. Thanks!
Re^5: inside-out objects using arrays?
by ikegami (Patriarch) on Sep 18, 2005 at 02:52 UTC
    Why not just convert @name to %name. You can keep using the numerical index. That changes the array into a sparse array. The time cost is quite minimal.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://492950]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (6)
As of 2024-04-24 11:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found