[Mono-devel-list] Compressing the `CategoryData' table

Ben Maurer bmaurer at ximian.com
Thu Dec 23 16:00:02 EST 2004


Hey guys,

Right now, the CategoryData table, located in
metadata/char-conversions.h takes up 64 kb of space in the Mono
executable. I have attached a program that generates a more compact
representation of this table. My version requires only 6 kb to store.
The only cost of this representation is that 3 indirections, rather than
1 are needed. Also, a few shifts, etc must be done. I haven't taken a
look at exactly the extra cost of this method. But I am assuming that
this routine is not going to be very perf critical.

The attached file makes a C# representation of my new structure.
Obviously, I will port this to C; I just wanted to do some quick
testing.

I found the segment length of 256 and stride length of 8 to be the
shortest combo, by trial and error.

I'd appreciate any comments on my technique, and any possible
improvements.

This technique could also be applied to the other data tables in Char.

-- Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: char-table-encode.cs.gz
Type: application/x-gzip
Size: 4070 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20041223/7417b337/attachment.gz 


More information about the Mono-devel-list mailing list