প্রকল্প সম্পর্কে

# mimalloc-pprof [microsoft/mimalloc](https://github.com/microsoft/mimalloc)-এর একটি ফর্ক, যা **pprof-সামঞ্জস্যপূর্ণ স্যাম্পলড হিপ প্রোফাইলিং** যোগ করে, যেখানে Linux ও macOS-এর পাশাপাশি নেটিভ Windows প্রথম শ্রেণির টার্গেট। এটি Bun-এর সমস্ত মেমরি-ফেরত দেওয়ার ফিচার (যা "hole punch" নামে পরিচিত) আমদানি ও পুনরায় যাচাই করে। ## প্রধান বৈশিষ্ট্য - **pprof-সামঞ্জস্যপূর্ণ হিপ প্রোফাইলিং**: স্যাম্পলড লাইভ অ্যালোকেশন ট্র্যাক করে এবং gperftools `heap_v2` টেক্সট ফরম্যাট অথবা একটি আনকম্প্রেসড pprof `profile.proto` লেখে। দুটোই সরাসরি [google/pprof](https://github.com/google/pprof)-এ খোলে ফ্লেম গ্রাফ, কল গ্রাফ, টপ রিপোর্ট এবং প্রোফাইল ডিফের জন্য। - **Windows প্রথম শ্রেণির**: একমাত্র mimalloc হিপ প্রোফাইলার যা ব্যবহারযোগ্য Windows প্রোফাইল তৈরি করে। আপস্ট্রিম mimalloc-এ কোনো প্রোফাইলার নেই; Bun-এর ফর্ক Win32 স্ট্যাক ক্যাপচার করে কিন্তু কোনো মডিউল ম্যাপিং দেয় না। এই ফর্ক লোড করা মডিউলগুলো স্পষ্টভাবে গণনা করে। - **মেমরি ফেরত**: Bun-এর মেমরি-ফেরত দেওয়ার ফিচার (hole purging, ব্যাকগ্রাউন্ড পার্জ থ্রেড, সময়-বিলম্বিত পার্জ) অন্তর্ভুক্ত করে এবং যেকোনো থ্রেড থেকে প্রসেস-ব্যাপী ইগার পার্জ (গেটেড, ডিফল্টে পার্ক করা), সাব-পেজ hole purging, এবং স্পষ্ট খালি-এরিনা রিক্লেইম যোগ করে। - **সঠিক পরিসংখ্যান**: `mi_stats_get`, `mi_stats_get_json`, প্রতি-হিপ JSON ডাম্প, DHAT সঠিক প্রোফাইলিং (Valgrind ফরম্যাট), অ্যালোকেশন-ইভেন্ট কলব্যাক, এবং একটি ভিউয়ারসহ লাইভ হিপ স্ন্যাপশট। - **রোবাস্টনেস**: ডকুমেন্টেড লক অর্ডারসহ fork() হ্যান্ডলার, রানটাইম লক-অর্ডার চেকার, ফল্ট-ইনজেকশন টেস্টসহ হিপ-টিয়ারডাউন ABA ক্লেইম প্রোটোকল, গার্ড-পেজ অ্যালোকেশন, হার্ডেনড/সিকিউর বিল্ড মোড, ASan/Valgrind/ETW ট্র্যাকিং। - **প্ল্যাটফর্ম সাপোর্ট**: Windows MSVC ও MinGW, macOS malloc-zone ইন্টারপোজ ও জোন ইন্ট্রোস্পেকশন, Linux। সম্পূর্ণ C API সহ ফার্স্ট-পার্টি Rust ক্রেট। - **পারফরম্যান্স**: থ্রেড স্কেলিং, অনুরোধকৃত-সাইজ ডিস্ট্রিবিউশন, স্বল্পস্থায়ী থ্রেড এবং নিষ্ক্রিয়তার পর মেমরি ফেরতের উপর TCMalloc, jemalloc, Microsoft mimalloc এবং Bun mimalloc-এর বিরুদ্ধে বিস্তৃত বেঞ্চমার্কিং। ## ইন্টিগ্রেশন প্রোফাইলিং দুইবার অপ্ট-ইন: কম্পাইল সময়ে (cargo `features = ["pprof"]` বা CMake `-DMI_PPROF=ON`) এবং রানটাইমে (start API বা `MIMALLOC_PROF=1`)। ডিফল্ট বিল্ড একটি সাধারণ দ্রুত অ্যালোকেটর। ## সংস্করণ আপস্ট্রিম mimalloc-এর `dev3` লাইন ট্র্যাক করে (ক্রেট `mimalloc-pprof` 1.x)। লিগ্যাসি v2 লাইন (0.8.x) `v2` ব্রাঞ্চে সংরক্ষিত কিন্তু রক্ষণাবেক্ষণ করা হয় না। ## ডকুমেন্টেশন - [ফিচার তুলনা](#feature-comparison): Microsoft MiMalloc-V3, Bun-এর ফর্ক এবং jemalloc-এর সাথে পাশাপাশি, প্রতিটি সেল সোর্সসহ। - [থ্রেড স্কেলিং](#thread-scaling-by-allocation-pattern): ছয়টি অ্যালোকেশন প্যাটার্নের জন্য 1-8 ওয়ার্কারে সমষ্টিগত থ্রুপুট। - [নিষ্ক্রিয়তার পর ফেরত দেওয়া মেমরি](#memory-returned-after-idle): কাজের একটি বিস্ফোরণ শেষ হলে প্রতিটি অ্যালোকেটর কী ফেরত দেয়। - [পারফরম্যান্স](#performance): সম্পূর্ণ পদ্ধতি, প্রতি-সেল টেবিল এবং বেঞ্চমার্ক পরিবার। - [কেন এই ফর্ক ব্যবহার করবেন](#why-use-this-fork): বিদ্যমান সবচেয়ে বেশি পরীক্ষিত mimalloc ফর্ক। - [Bun ফিচার](#bun-features): oven-sh/mimalloc থেকে পোর্ট করা প্রতিটি ফিচার, এবং কী ইচ্ছাকৃতভাবে বাদ দেওয়া হয়েছে। - [প্রোফাইলিং ও অবজার্ভেবিলিটি](#profiling-and-observability): স্যাম্পলড pprof, সঠিক পরিসংখ্যান, DHAT, মেমরি ইভেন্ট। - [আপস্ট্রিম বাগ পাওয়া ও ঠিক করা হয়েছে](#upstream-bugs-found-and-fixed): দুটি আনবাউন্ডেড মেমরি লিকসহ। - [প্রশ্নোত্তর](#qa)