On Tue, 14 Oct 2025 23:26:00 GMT, Shaojin Wen <[email protected]> wrote:
> This PR refactors the Double.toHexString method to improve its performance by > eliminating the use of StringBuilder and regex operations. The new > implementation uses a direct byte array approach to construct the hex string > representation, which avoids the overhead of StringBuilder operations and > regex pattern matching. > > Existing tests in `java/lang/Double/ToHexString.java`. The existing regression tests may be adequate for this refactoring as the high-level algorithm and special cases are similar, but I'll want to take another look before approving this PR. Thanks. src/java.base/share/classes/java/lang/Double.java line 731: > 729: // This is used to remove trailing zeros from the hex > representation > 730: // We limit to 12 because we want to keep at least 1 hex > digit (13 total - 12 = 1) > 731: int trailingZeros = Math.min(12, > ((Long.numberOfTrailingZeros(signifBits) & 0xFC) >> 2)); Some additional discussion of the computation here would be helpful to casual readers. I would also be tempted to add assert 0 <= trailingZeros && trailingZeros <= 12; ------------- PR Comment: https://git.openjdk.org/jdk/pull/27811#issuecomment-3420526051 PR Review Comment: https://git.openjdk.org/jdk/pull/27811#discussion_r2443797708
