Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: A memory efficient hash, trading off speed - does it already exist?

by Abigail-II (Bishop)
on Feb 03, 2003 at 23:24 UTC ( [id://232408]=note: print w/replies, xml ) Need Help??


in reply to A memory efficient hash, trading off speed - does it already exist?

Perl preallocates hashes with 8 buckets. That takes some space, but that's just 32 bytes. So, if you have 4 elements in the hash, you would be wasting 16 bytes on most hashes, 20 bytes on a few, and maybe 24 bytes on a handful of hashes. This may look a lot, but compared to the minimum amount of memory a hash takes, this isn't that much.

perl -MDevel::Size -wle 'print Devel::Size::size ({})' 100

That's 100 bytes for a reference to an empty hash. And the reference isn't taking the majority of the memory!

If you want to save on your memory usage, you are way better off cutting down on your 120k hashes.

Abigail

  • Comment on Re: A memory efficient hash, trading off speed - does it already exist?
  • Download Code

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2024-04-25 12:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found