A presentation from Aleksey Shipilëv on his journey working through the compact string implementation in the JVM.
Full Abstract:
java.lang.String is pervasively and perversely used in most Java applications. Not surprisingly, we are looking into optimizing it both on small and large scale. In this talk, we will take a deeper look into two interesting String-related features coming in JDK 9: a) Compact Strings, that saves memory for Strings representable with single-byte chars, with little or none performance regressions, and in many cases, significant performance improvements; b) Indify String Concat, that uses the magic of invokedynamic to concatenate Strings, to free runtime implementors for optimizing string concatenation without pushing users to recompile their programs; We will talk about the rationale, pitfalls and caveats of implementing the intrusive core library/runtime changes.