> Anybody know of any collection (i.e. Array/Hash) classes
where
> the keys and/or values can be assigned a fixed class? And
for
> classes that have variable length objects the length be
also
> potentially fixed across the collection? The main purpose
of
> doing this would be memory usage. You wouldn't have to
store
> the class (and possibly object length and pointer to
allocated
> space) per element and instead just have the raw data in
the
> collection. You would be able to get the same memory
> utilization as C per element if done right.
>
> Here would be a few examples of what I'm talking about and
how
> much space per element it would take:
>
> - array of Floats (64 bits per element)
> - array of N-bit integers (N bits per element)
> - hash of 2-character strings (2*8 bits per key and Object
per
> value)
> - array of array of 8 Floats (8*64 bits per line)
There's also pack and unpack which can be used to implement
this.
> For dealing with large data structures, this could be
> invaluable for memory usage.
"could" or "is"? Do you really know that you need this or is
this just
guessing?
Thanks Robert and Christian. I think NArray will work for many
uses.
I still think a more general extension would be nice. And
Robert, I guess you might say I'm guessing. I'm new to ruby,
but from my perl usage, I know of many times I've dealt with
large amounts of data and would have wanted more C-like
efficiency.
ยทยทยท
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
"Eric Mahurin" <eric_mahurin@yahoo.com> schrieb im Newsbeitrag news:20050501214236.96659.qmail@web41121.mail.yahoo.com...
> Anybody know of any collection (i.e. Array/Hash) classes
where
> the keys and/or values can be assigned a fixed class? And
for
> classes that have variable length objects the length be
also
> potentially fixed across the collection? The main purpose
of
> doing this would be memory usage. You wouldn't have to
store
> the class (and possibly object length and pointer to
allocated
> space) per element and instead just have the raw data in
the
> collection. You would be able to get the same memory
> utilization as C per element if done right.
>
> Here would be a few examples of what I'm talking about and
how
> much space per element it would take:
>
> - array of Floats (64 bits per element)
> - array of N-bit integers (N bits per element)
> - hash of 2-character strings (2*8 bits per key and Object
per
> value)
> - array of array of 8 Floats (8*64 bits per line)
There's also pack and unpack which can be used to implement
this.
> For dealing with large data structures, this could be
> invaluable for memory usage.
"could" or "is"? Do you really know that you need this or is
this just
guessing?
Thanks Robert and Christian. I think NArray will work for many
uses.
You're welcome.
I still think a more general extension would be nice. And
Robert, I guess you might say I'm guessing. I'm new to ruby,
but from my perl usage, I know of many times I've dealt with
large amounts of data and would have wanted more C-like
efficiency.
As Mark has demonstrated, you can stuff anything into a String with pack and unpack.
Btw, Mark, if you factor out conversion to string and from string (hint traits), you have a generic implementation for any fixed size type. Maybe this should go somewhere into the std lib...