Sciweavers

SCP
2010

Compact and efficient strings for Java

12 years 11 months ago
Compact and efficient strings for Java
In several Java VMs, strings consist of two separate objects: metadata such as the string length are stored in the actual string object, while the string characters are stored in a character array. This separation causes an unnecessary overhead. Each string method must access both objects, which leads to a bad cache behavior and reduces the execution speed. We propose to merge the character array with the string's metadata object at run time. This results in a new layout of strings with better cache performance, fewer field accesses, and less memory overhead. We implemented this optimization for Sun Microsystems' Java HotSpotTM VM, so that the optimization is performed automatically at run time and requires no actions on the part of the programmer. The original class String is transformed into the optimized version and the bytecodes of all methods that allocate string objects are rewritten. All these transformations are performed by the Java HotSpotTM VM when a class is load...
Christian Häubl, Christian Wimmer, Hanspeter
Added 21 May 2011
Updated 21 May 2011
Type Journal
Year 2010
Where SCP
Authors Christian Häubl, Christian Wimmer, Hanspeter Mössenböck
Comments (0)