Hi,
I'd like to request a review for a C2 optimization for String.format()
and String.formatted() with simple format strings:
https://github.com/openjdk/jdk/pull/29915 
<https://github.com/openjdk/jdk/pull/29915 >
Summary
-------
When String.format() or formatted() is called with a compile-time constant 
format string containing simple specifiers (%s, %d, %x, %X), this optimization
bypasses the java.util.Formatter overhead and directly builds the result string.
The C2 compiler recognizes these calls during the Parse phase and redirects 
them to specialized fast-path methods in java.lang.String.
Performance
-----------
Benchmarks show 2.6x - 4.3x speedup for common patterns:
 "Hello %s".formatted(name) -> 3.75x faster
 "%s: %d".formatted(key, value) -> 2.62x faster
 "%s %s %s %s".formatted(...) -> 2.68x faster
Fallback
--------
The optimization only applies to simple cases. Complex format strings (width > 
9, precision, most flags, non-constant format) fall back to the existing 
Formatter implementation.
Testing
-------
- JMH microbenchmarks verify performance improvement
- jtreg functional tests cover optimized and fallback paths
- IR tests verify correct C2 code generation
I would appreciate any feedback on the approach or implementation.
Thanks,
Wenshao

Reply via email to