[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

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

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