[VPM] - data structures, performance and memory

Jer A jeremygwa at hotmail.com
Fri Nov 10 17:30:02 PST 2006


Darren,

Thank-you for your reply.

the "hundred" records example was not a good one, I mean very large records 
put together in a very large array.....(in the thousands).
what are the memory sizes for scalars,hashes,single-dim arrays,double-dim 
arrays, array of anon-hashes -etc. how can i use as little memory as 
possible, and how can i search these very large arrays efficiently.

Some pointers would be great, I don't need any examples.

are elements on a array, of variant data-type...does this general type 
consume more memory than if  the type is explicitly defined, if so, how can 
I explicitly define the type, eg. int,string,bool in perl terms etc.

can operations on very large arrays eat up more memory, in execution?
how can I control perl's allocation of memory.

I am using Activestate perl 5.8 on a win32 host.

Thank in advance for your help.
-Jeremy A.


> >project 2: I am working on a project where I need to store data in 
>memory.
> >What are the memory requirements of certain structures eg. 
>hash,array,array
> >of anon hashes,array of packed data,array of strings, array of objects 
>etc.
> >
> >suppose I have a hundred records (structures) holding eg. 
>age,name,address
> >etc. what is the best way of storing this data live in memory for a long
> >period time, for performance and efficiency.
> >An array of anon hashes is pretty, but may not be the best for 
>performance,
> >and mem usage...am i right? Considering this, how can I store records 
>with
> >elements that can be of different record types, saving the most amount of
> >memory as possible......can I do this with pack and unpack, I am not
> >familiar with this, but do you think s more efficient, than an array of
> >element delimited strings? or what if each record is an instantiated 
>object
> >with properties?
> >
> >Thanks in advance for your advice and help.
> >
> >   -Jeremy A.
>
>I think you may be getting into a "premature optimization" matter.
>If you have only a hundred records of eg age,name,address, those will
>all take up maybe 1 kilobyte at most of memory, which is negligible.
>Don't bother fussing about memory unless you're storing tens of
>thousands or more of such records, or you're working on an embedded
>system.  Just do whatever is easiest to program, as programmer
>efficiency is usually more important than any other kind.  Use hashes
>if you're looking data up directly, such as by the person's name, and
>arrays only when you plan to go through them sequentially.  Or you
>can include multiple references to the same data structures if you
>need to.
>
>-- Darren Duncan
>_______________________________________________
>Victoria-pm mailing list
>Victoria-pm at pm.org
>http://mail.pm.org/mailman/listinfo/victoria-pm

_________________________________________________________________
Ready for the world's first international mobile film festival celebrating 
the creative potential of today's youth? Check out Mobile Jam Fest for your 
a chance to WIN $10,000! www.mobilejamfest.com



More information about the Victoria-pm mailing list