परिचय

  • 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 का String optimization static structure आधारित code में प्रभावी है।
  • @Stable अभी internal-only है, लेकिन भविष्य में इसके public feature के रूप में बढ़ने की संभावना है।
  • नवीनतम JDK अपनाने पर string-आधारित Map processing की performance में बड़ा सुधार संभव है।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.