Phiên bản 5.4.0 của thư viện quản lý bộ nhớ jemalloc đã được phát hành. Phiên bản này cung cấp một cách triển khai thay thế cho các hàm malloc được tối ưu hóa để giảm phân mảnh và hoạt động trên các hệ thống đa xử lý. Để giải quyết các vấn đề khóa trên hệ thống đa lõi, jemalloc sử dụng vùng cấp phát bộ nhớ riêng biệt cho mỗi lõi CPU, cho phép khả năng mở rộng tuyến tính khi số lượng luồng tăng lên.
Vào tháng 6 năm 2025, tác giả dự án đã ngừng bảo trì và chuyển kho lưu trữ jemalloc sang chế độ lưu trữ, nhưng vào tháng 3 năm nay, việc phát triển đã được Meta tiếp tục, công ty này sử dụng jemalloc trong cơ sở hạ tầng của mình. Thư viện này ban đầu được phát triển cho FreeBSD và đã được sử dụng mặc định trên hệ điều hành này kể từ năm 2005. Mã nguồn của thư viện được viết bằng ngôn ngữ C và được phân phối theo giấy phép BSD.
Trong số những thay đổi:
- Logic cho việc điền và xóa tcache (Bộ nhớ đệm cục bộ của luồng), cũng như việc phân bổ bộ nhớ, đã được đơn giản hóa.
- Bộ cấp phát trang bộ nhớ Page Allocator Classic (PAC) và HPA (Huge Page Allocator) đã được hợp nhất. Cơ chế phức tạp của các cuộc gọi gián tiếp thông qua bảng ảo (PAI vtable) đã được loại bỏ.
- Để đơn giản hóa việc bảo trì và mở rộng nền tảng, tất cả các thao tác phụ thuộc vào nền tảng đều được chuyển sang các tập tin tiêu đề riêng biệt.
- Việc thực thi các lệnh mallctl đã được đơn giản hóa, và cơ sở hạ tầng để tạo và hiển thị số liệu thống kê đã được thiết kế lại.
- Cờ EXTENT_ALLOC_FLAG_PINNED đã được thêm vào, cho phép đánh dấu các vùng ánh xạ bộ nhớ không thể bị gián đoạn, chẳng hạn như các trang HugeTLB, để ưu tiên sử dụng lại. Các giao diện mallctl mới đã được thêm vào để lấy số liệu thống kê sử dụng bộ nhớ được ghim: stats.pinned, stats.arenas..pinned
- Nội dung thống kê malloc được đồng bộ hóa ở định dạng dễ đọc và định dạng JSON.
- Đã loại bỏ các tham số lỗi thời lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div và lg_tcache_flush_large_div.
Nguồn: opennet.ru
