OpenJDK 17 में Shenandoah: sub-millisecond GC pause का कार्यान्वयन
(developers.redhat.com)- Shenandoah Garbage Collection प्रोजेक्ट का लक्ष्य GC के दौरान pause time को कम करना है
→ Concurrent processing के जरिए responsiveness बढ़ाई जाती है
→ JDK12 : Concurrent Heap Evacuation पेश किया गया, जिससे app को रोके बिना heap cleanup संभव हुआ
→ JDK14 : Concurrent Class Unloading
→ JDK16 : Concurrent Reference Processing
→ JDK17 : Concurrent Thread-stack Processing के जुड़ने से sub-millisecond pause संभव हो गया
2 टिप्पणियां
ZGC भी काफ़ी मशहूर है।
हालाँकि, यह variables के pointers में 64bit का उपयोग करता है (https://img1.daumcdn.net/thumb/R1280x0/…), इसलिए इसे केवल 64-bit operating systems पर ही इस्तेमाल किया जा सकता है।
पहले मैंने script language VM performance के बारे में देखा था,
JS के V8 के मामले में, कहा जाता है कि इसका सिद्धांत कुछ इस तरह है।
https://v8.dev/blog/concurrent-marking
https://v8.dev/blog/orinoco
https://v8.dev/blog/trash-talk
https://v8.dev/blog/high-performance-cpp-gc
Shenandoah gc की विशेषताओं और उसके सरल एल्गोरिदम का परिचय
https://dev-punxism.tistory.com/entry/Shenandoah-gc
https://meetup.toast.com/posts/234
मैंने तो अब तक Shenandoah के बारे में सिर्फ़ Take Me Home Country Road गाने के बोलों में ही सुना था..