microsoft/mimalloc - उच्च-प्रदर्शन सामान्य-उद्देश्य memory allocator
(github.com/microsoft)mallocका drop-in replacement बनने वाला सामान्य-उद्देश्य allocator, जिसे बिना code बदले मौजूदा program पर लागू किया जा सकता है- jemalloc और tcmalloc से तेज़, और memory usage भी कम: tcmalloc की तुलना में 13% तेज़, jemalloc की तुलना में 2.5 गुना से अधिक तेज़
- किसी एक खास benchmark में ही नहीं, बल्कि किसी भी workload में लगातार top-tier performance दिखाता है
- लगभग 10k LOC की सरल data structure के कारण integration/porting आसान है, और साथ ही हज़ारों मशीनों के distributed service में चलाने लायक परिपक्व
- Windows, macOS, Linux, WASM, कई BSD, Haiku, MUSL आदि अनेक OS पर port किया गया है
- multi-threaded environment में lock contention की चिंता नहीं
- हर page पर thread-local free list और concurrent free list को अलग रखा गया है
- कोई दूसरा thread memory free करे तब भी सिर्फ एक single CAS से काम हो जाता है, और जटिल synchronization code की ज़रूरत नहीं पड़ती
- C में लिखा गया है. MIT license
3 टिप्पणियां
जब thread-local multithreading करते हैं तो इसका असर काफ़ी महसूस होता है। मैं इसे काफ़ी उपयोगी तरीके से इस्तेमाल कर रहा हूँ।
इसमें arena implementation भी है, इसलिए मैं इसे अच्छी तरह इस्तेमाल कर रहा हूँ haha
लगता है यह वही चीज़ है जो पिछली बार pogocache source code में इस्तेमाल हो रही थी।