JAVA String की performance में बड़ा सुधार
(inside.java)परिचय
- JDK 25 में
String::hashCodeको इस तरह बेहतर बनाया गया है कि अधिकांश मामलों में constant folding लागू हो सके। - immutable Map में string key आधारित lookup की performance काफ़ी बेहतर हो गई है।
मुख्य भाग
Map<String, MethodHandle>संरचना में key lookup को statically optimize किया जाता है।- अंदरूनी तौर पर
String.hashफ़ील्ड पर@Stableलागू किया गया है; hash value स्थिर हो जाने पर JVM cache पर भरोसा करता है। - इसके कारण hash calculation, Map index calculation, और method handle lookup — तीनों को compile time पर constant के रूप में प्रोसेस किया जाता है।
- benchmark नतीजों में, मौजूदा JDK 24 की तुलना में अधिकतम 8 गुना से ज़्यादा performance improvement देखा गया।
- कमी यह है कि जब hashcode 0 हो, तब constant folding नहीं होता (
""string सहित)। - JEP 502 के ज़रिए आगे चलकर user code में भी इसी तरह की सुविधा मिलने की योजना है।
निष्कर्ष
- JDK 25 का
Stringoptimization static structure आधारित code में प्रभावी है। @Stableअभी internal-only है, लेकिन भविष्य में इसके public feature के रूप में बढ़ने की संभावना है।- नवीनतम JDK अपनाने पर string-आधारित Map processing की performance में बड़ा सुधार संभव है।
अभी कोई टिप्पणी नहीं है.