microsoft/mimalloc - Trình cấp phát bộ nhớ đa dụng hiệu năng cao
(github.com/microsoft)- Trình cấp phát đa dụng có thể thay thế
malloctheo kiểu drop-in, có thể áp dụng cho các chương trình hiện có mà không cần sửa mã - Nhanh hơn
jemalloc,tcmallocvà cũng dùng ít bộ nhớ hơn: nhanh hơn 13% so vớitcmalloc, và hơn 2,5 lần so vớijemalloc- Không phải chỉ đứng đầu ở một benchmark cụ thể, mà luôn nằm trong nhóm dẫn đầu với mọi loại workload
- Cấu trúc dữ liệu đơn giản khoảng 10k LOC giúp dễ tích hợp/port, đồng thời đủ mức độ vận hành cho các dịch vụ phân tán quy mô hàng nghìn máy
- Đã được port sang nhiều OS như Windows, macOS, Linux, WASM, nhiều biến thể BSD, Haiku, MUSL, v.v.
- Không phải lo tranh chấp khóa trong môi trường đa luồng
- Mỗi page tách riêng thread-local free list và concurrent free list
- Ngay cả khi thread khác giải phóng bộ nhớ thì cũng chỉ cần một lần CAS duy nhất, không cần mã đồng bộ hóa phức tạp
- Viết bằng C. Giấy phép MIT
3 bình luận
Khi dùng đa luồng theo kiểu thread-local thì cảm nhận khác biệt khá rõ. Tôi đang dùng nó khá hữu ích.
Có cả triển khai arena nên mình đang dùng khá ổn haha
Có vẻ là chính cái đó từng được dùng trong mã nguồn pogocache lần trước.