หลังจากหยุดพักไปเกือบสี่ปี (ดู "เจมัลล็อคทุกอย่าง») การเปิดตัวเวอร์ชัน 5.3.1 ของตัวจัดสรรได้เกิดขึ้นแล้ว เจมัลลอค – การใช้งาน malloc(3) ที่เน้นการป้องกันการแตกกระจายและการสนับสนุนการทำงานพร้อมกันที่ปรับขนาดได้
เวอร์ชันใหม่นี้มีการแก้ไขข้อบกพร่องกว่า 390 รายการ เพิ่มฟีเจอร์ใหม่ ปรับปรุงประสิทธิภาพ และปรับปรุงความเข้ากันได้กับแพลตฟอร์มต่างๆ
โปรเจ็กต์นี้เขียนด้วยภาษาซีและเผยแพร่ภายใต้ใบอนุญาต BSD
คุณสมบัติใหม่:
- pvalloc(3) รองรับ
- ตรวจพบการเรียกใช้ฟังก์ชันฟรีซ้ำซ้อนในเวอร์ชันดีบัก
- เพิ่มตัวเลือกการคอมไพล์ --enable-pageid เพื่อเปิดใช้งานการระบุตำแหน่งหน่วยความจำ (memory-mapped annotation)
- เพิ่มพารามิเตอร์รันไทม์ prof_bt_max เพื่อควบคุมความลึกสูงสุดของสแต็กสำหรับการวิเคราะห์ประสิทธิภาพ
- เพิ่มตัวเลือกการคอมไพล์ --enable-force-getenv เพื่อใช้ getenv แทน secure_getenv;
- เพิ่มตัวเลือกการคอมไพล์ --disable-dss เพื่อปิดใช้งานการใช้ sbrk(2)
- เพิ่มตัวเลือกการคอมไพล์ tcache_ncached_max เพื่อควบคุมจำนวนรายการในแคชของเธรด
- เพิ่มพารามิเตอร์รันไทม์ calloc_madvise_threshold เพื่อกำหนดว่าจะใช้เคอร์เนลหรือ memset ในการล้างค่าบล็อกหน่วยความจำที่จัดสรรไว้ให้เป็นศูนย์เมื่อเรียกใช้ calloc
- เพิ่มตัวเลือกการคอมไพล์ --disable-user-config เพื่อปิดใช้งานการอ่านค่าการกำหนดค่าจากไฟล์ /etc/malloc.conf หรือจากตัวแปรสภาพแวดล้อม MALLOC_CONF ในระหว่างการทำงาน
- เพิ่มพารามิเตอร์รันไทม์ disable_large_size_classes เพื่อเปิดใช้งานอัลกอริธึมการคำนวณขนาดแบบใหม่ ซึ่งจะลดภาระหน่วยความจำให้น้อยที่สุดเมื่อจัดสรรบล็อกหน่วยความจำขนาดใหญ่ กล่าวคือ ขนาด >= 4 * PAGE;
- เปิดใช้งานการใช้ process_madvise และเพิ่มพารามิเตอร์รันไทม์ process_madvise_max_batch เพื่อควบคุมจำนวนพื้นที่หน่วยความจำสูงสุดในแต่ละ "ชุด" ของ madvise
- เพิ่มอินเทอร์เฟซ mallctl แล้ว:
- opt.prof_bt_max;
- thread.tcache.max ใช้สำหรับเปลี่ยนค่าและรับค่า tcache_max ของเธรดปัจจุบัน
- ใช้คำสั่ง thread.tcache.ncached_max.write และ thread.tcache.ncached_max.read_sizeclass เพื่อเปลี่ยนค่าและรับค่า ncached_max ของเธรดปัจจุบัน
- arenas.hugepage จะส่งคืนขนาด hugepage ที่ใช้ ซึ่งส่งออกไปยังสถิติ malloc ด้วย
- ใช้คำสั่ง approximate_stats.active เพื่อรับค่าโดยประมาณของจำนวนไบต์ที่ใช้งานอยู่ในปัจจุบัน ซึ่งไม่ควรนำไปเปรียบเทียบกับสถิติอื่นๆ ที่ดึงมาได้
- มีการแก้ไขข้อผิดพลาดหลายอย่างและปรับปรุงเอกสารประกอบการใช้งานให้ดียิ่งขึ้น
ที่มา: linux.org.ru
