-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andreas,

The JVM converts all shorts to ints before doing any arithmetic, so
shorts are actually a little bit slower than ints.

As for the size: If you have primitive values, an int takes up 4 byte,
whereas a short takes 2 bytes (+java overhead), meaning 100.000 * 3 int
rather than shorts should take up 600kbyte of memory more - hardly
noticeable compared to fops overall memory usage.

When you use the non-primitive types, java >= 1.5 uses the flyweight
pattern, meaning there is one instance for every number used, you would
only store a pointer, which has the same size for Integer and Short.

So +1 for making this change.

Max

Andreas Delmelle schrieb:
> 
> Hi all
> 
> Just checking if anyone would mind terribly if the AreaInfo inner class
> in TextLayoutManager were changed to use 'int' indices rather than 'short'.
> 
> AFAIK, this is the only reason we currently need to split up FOText
> instances larger than 32K characters. At the time I introduced this fix,
> I opted to split the FOText instances, since I was a bit concerned about
> a rise in memory consumption. Upon closer inspection, and some browsing
> around, this seems to have far less of an impact than I thought...
> 
> I did a quick test, allocating space for an array of 100.000 instances of:
> - a wrapper around three short values (values Short.MAX_VALUE)
> - a wrapper around three int values (values Integer.MAX_VALUE)
> 
> The results:
> - 3 shorts -> 100.000 instances = (2200K - 800K) = 1600K
> - 3 ints -> 100.000 instances = (2980K - 800K) = 2180K
> 
> The 800K is subtracted to account for the instance size (8 bytes * 100K).
> 
> So three ints do not take up 100% as much space (as I initially
> expected), but only roughly between 30% and 50%...
> 
> 
> Opinions?
> 
> Cheers
> 
> Andreas

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIW12e+Gr+4pk71JwRAgWoAJwOIDLdgcYEBZQ4Tx0gPZaJe4KAXQCfc+Cs
u2CYsAOxh6HnzLzu81iOH7c=
=WlBi
-----END PGP SIGNATURE-----

Reply via email to