|Just another Perl shrine|
Compact data classesby creeble (Sexton)
|on Jun 07, 2013 at 23:13 UTC||Need Help??|
creeble has asked for the
wisdom of the Perl Monks concerning the following question:
I have a Class::Struct (using array form, fwiw) containing about a dozen string members. I build a database of these by sorting them into an array.
The total length of the strings used to create this database is about 2MB; about 150 bytes of actual data times about 15,000 records, say.
As an array of Class::Struct objects, this takes up over 15MB in ram. I am unfortunately running on an embedded processor with limited ram.
How could I store these strings in a more compact way, and still use a convenient accessor function (preferably, the same one, namely a class function) to retrieve the data? The db is read-only once it has been sorted.
Or, to perhaps put it another way, what would it take to write something like Class::Struct in XS with a non-growable string as the only data type?
Or am I already missing something from CPAN? What would be a more compact form to store