JDK 25: 해시 코드 상수 폴딩을 통한 String 성능 향상
JDK 25는 String::hashCode 함수의 상수 폴딩을 가능하게 함으로써 String 클래스의 성능을 크게 향상시켰습니다. 이를 통해 정적이고 불변인 Map에서 String을 키로 사용하는 경우 특히 성능이 크게 향상됩니다. 네이티브 호출의 MethodHandle을 String 키로 액세스하는 시나리오에서는 8배 이상의 성능 향상이 관찰되었습니다. 이 최적화는 내부 필드 String.hash에 @Stable 주석을 붙임으로써 구현됩니다. 이를 통해 JVM은 해시 코드를 캐싱하고 재사용할 수 있게 되어 0이 아닌 해시 코드에 대한 재계산을 방지할 수 있습니다. 0인 해시 코드는 최적화를 방해할 수 있지만 향후 수정될 것으로 예상됩니다.
더 보기