Hi, during jigsaw bootstrap, package names - represented in external form, "java.lang" - are transformed into VM internal form, "java/lang", before calling into the VM.
This, however, can effectively be moved into the VM, which removes the need to generate a lot of short-lived strings during bootstrap and heat up various String.replace-related methods. This has a noticeable impact on startup metrics. Webrev: http://cr.openjdk.java.net/~redestad/8171855/ Bug: https://bugs.openjdk.java.net/browse/JDK-8171855 JPRT -testset hotspot pass, and I've prepared to push this into jdk9/hs if there are no objections. Char-based replace on a UTF-8 source should be correct as long as the from and to chars are ASCII (0x00 through 0x7F). A more general method would be needed to safely deal with char values above 0x7F, so adding some asserts to that effect should be considered. Thanks! /Claes