Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re^5: Array-based Inside-out Objects with Object::InsideOut

by rvosa (Curate)
on Feb 21, 2006 at 20:32 UTC ( #531788=note: print w/replies, xml ) Need Help??

in reply to Re^4: Array-based Inside-out Objects with Object::InsideOut
in thread Array-based Inside-out Objects with Object::InsideOut

Further, array lookup time is not affected by array size: It is always a constant.
That reassurance was probably part of what I was looking for. I get what you're saying about the reclaiming of IDs, but I can imagine a corner case: say that some object in the inheritance tree only gets instantiated once in a while, and others in the tree are instantiated far more often, but they share the ID generator and ID pool.

Then, any array holding instance data in the class that is only instantiated ever so often will be a fairly sparse array. I wonder if that's more memory-efficient than a hash. I don't know enough about the perl guts to be able to say whether memory is also allocated for the unused array elements in that class. Anyone?
  • Comment on Re^5: Array-based Inside-out Objects with Object::InsideOut

Replies are listed 'Best First'.
Re^6: Array-based Inside-out Objects with Object::InsideOut
by jdhedden (Deacon) on Feb 22, 2006 at 13:34 UTC
    Such corner cases would only be an issue with thousands of objects and hundreds of fields. In such a rare situation, you could always use hash-based fields for the infrequently instantiated class. Object::InsideOut handles any mixture of array-based and hash-based fields in different classes and in the same class.

    Remember: There's always one more bug.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2022-05-24 14:52 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (84 votes). Check out past polls.