Microsoft ได้เปิดไลบรารีภายใต้ใบอนุญาต MIT
คุณสมบัติหลักของ mimalloc คือการใช้งานที่กะทัดรัด (โค้ดน้อยกว่า 3500 บรรทัด) และประสิทธิภาพสูงมาก ใน
เพื่อประเมินประสิทธิภาพชุดที่มีอยู่
ประสิทธิภาพสูงสามารถทำได้โดยการใช้การแบ่งส่วนรายการอิสระเป็นหลัก แทนที่จะใช้รายการขนาดใหญ่เพียงรายการเดียว mimalloc จะใช้ชุดของรายการที่เล็กกว่า ซึ่งแต่ละรายการถูกผูกไว้กับเพจหน่วยความจำ วิธีการนี้ช่วยลดการกระจายตัวและเพิ่มข้อมูลในหน่วยความจำ หน้าหน่วยความจำคือชุดบล็อกที่มีขนาดใกล้เคียงกันที่จัดกลุ่มไว้ บนระบบ 64 บิต ขนาดเพจโดยทั่วไปคือ 64 KB หากไม่มีบล็อกที่ถูกครอบครองเหลืออยู่ในเพจ บล็อกนั้นจะถูกปล่อยให้ว่างโดยสมบูรณ์และหน่วยความจำจะถูกส่งกลับไปยังระบบปฏิบัติการ ซึ่งจะช่วยลดต้นทุนหน่วยความจำและการกระจายตัวของโปรแกรมที่รันระยะยาว
ไลบรารีสามารถรวมไว้ในขั้นตอนการเชื่อมโยงหรือโหลดสำหรับโปรแกรมที่ประกอบไว้แล้ว (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”) ห้องสมุดก็จัดให้มี
เป็นไปได้ที่จะสร้างไลบรารีในเซฟโหมดซึ่งมีการแทนที่หน้าตรวจสอบหน่วยความจำพิเศษ (หน้าป้องกัน) ที่ขอบเขตบล็อก และใช้การสุ่มการกระจายบล็อกและการเข้ารหัสรายการบล็อกที่ว่าง มาตรการดังกล่าวช่วยให้คุณสามารถบล็อกเทคนิคทั่วไปส่วนใหญ่ในการหาประโยชน์จากบัฟเฟอร์ล้นแบบฮีป เมื่อคุณเปิดใช้งาน Safe Mode ประสิทธิภาพจะลดลงประมาณ 3%
ในบรรดาคุณสมบัติของ mimalloc นั้นสังเกตด้วยว่าไม่เสี่ยงต่อปัญหาท้องอืดเนื่องจากมีการกระจายตัวมาก ในกรณีที่เลวร้ายที่สุด การใช้หน่วยความจำเพิ่มขึ้น 0.2% สำหรับข้อมูลเมตา และสามารถเข้าถึง 16.7% สำหรับหน่วยความจำแบบกระจาย เพื่อหลีกเลี่ยงความขัดแย้งเมื่อเข้าถึงทรัพยากร mimalloc จะใช้การดำเนินการแบบอะตอมมิกเท่านั้น
ที่มา: opennet.ru