Tôi muốn sử dụng trình phân bổ mục đích chung hiệu suất cao như jemalloc
/tcmalloc
với một nhóm bộ nhớ. Có hướng dẫn cho việc này không? Tôi không muốn sử dụng jemalloc
/tcmalloc
làm địa chỉ thay thế cho malloc
.Sử dụng tcmalloc/jemalloc với trình quản lý nhóm bộ nhớ tùy chỉnh
Tôi có hồ bơi bộ nhớ sử dụng libarena
và khắc một khu vực bộ nhớ lớn (2GB). Tôi muốn tạo các đối tượng có kích thước cố định như gslice
trên đấu trường này để nói 1 GB. (như bảng phân bổ bản đồ Bonwick) và muốn sử dụng phần còn lại của bộ nhớ để phân bổ mục đích chung có kích thước thay đổi. Tôi muốn có jemalloc
/tcmalloc
sử dụng khu vực bộ nhớ này. Điều này có thể không? Bất kỳ ý tưởng nào về cách tôi có thể tiến hành? Nếu có thư viện thay thế, tôi cũng muốn nghe về nó.
Chúc may mắn nhận được câu trả lời này, tôi cũng thực sự muốn câu trả lời này, vui lòng xem http://stackoverflow.com/questions/23341587/malloc-like-function-using-custom-heap câu hỏi của riêng mình. – Vality
Tôi đã viết một trình phân bổ cụ thể cho ứng dụng của chúng tôi. Một điều mà hóa ra lại là một ý tưởng tiện lợi thực sự là khái niệm giảm tất cả các phân bổ có thể cho một số lượng nhỏ các kích thước "lượng tử". Dưới 4k = 8 byte, 4k..16k = 16 byte ... tối đa 64MB tối đa. Tôi đã kết thúc với chỉ có khoảng 1000 kích cỡ khác nhau tất cả các con đường lên đến 64 MB. Rác ram là thấp vì kích thước của không gian lãng phí là một chức năng của kích thước của phân bổ. Điều này cho phép tái chế cọc cho mỗi kích thước. Một miễn phí chỉ là một sự thúc đẩy và phân bổ là một cửa sổ pop, trừ khi đống đó trống cho kích thước đó. – johnnycrash
Tôi không có câu trả lời cho bạn, nhưng bạn có thể tìm thấy một số thông tin hữu ích về chuỗi jemalloc này liên quan đến việc phân bổ bộ nhớ như các đấu trường bổ sung cho các trình phân bổ tùy chỉnh tại đây: http://www.canonware.com/pipermail/jemalloc-discuss/2015 -January/000988.html – acanaday