Lỗi thường mắc phải là viết các bộ cấp phát của riêng bạn để bạn có thể kiểm soát nhiều hơn bộ nhớ được sử dụng bởi mỗi hệ thống và có nhiều khả năng hiển thị hơn về những gì đang diễn ra. Một cách tốt hơn để đạt được điều này là sử dụng một trình lược tả bộ nhớ. Có rất nhiều trình biên dịch bộ nhớ ngoài đó, trình biên dịch MemPro của tôi là một ví dụ. Đây là một cách hoàn toàn không xâm lấn để theo dõi tất cả việc sử dụng bộ nhớ và bạn có thể tự động chia nhỏ nó thành các hệ thống phụ bằng cách sử dụng các bộ lọc ký tự đại diện. Lý tưởng nhất là giữ cho phân bổ bộ nhớ và theo dõi bộ nhớ của bạn hoàn toàn riêng biệt, chúng có những yêu cầu hoàn toàn khác nhau.
Việc tự ý phân chia bộ nhớ của bạn thành các nhóm thường có thể gây bất lợi vì mỗi nhóm sẽ có một chi phí chung. Cuối cùng, bạn có thể sử dụng nhiều bộ nhớ hơn mức cần thiết mà không thực sự nhận ra nó. Để giảm lãng phí, tốt hơn hết là gộp tất cả mọi thứ lại với nhau, sự chậm chạp sau đó được cả hệ thống chia sẻ.
Các lý do duy nhất để sử dụng bộ cấp phát tùy chỉnh là hiệu suất CPU (chủ yếu là cho sự kết hợp bộ đệm) và để hạn chế phân mảnh. Một ví dụ hoàn hảo về điều này là một hệ thống hạt. Bạn muốn tất cả các hạt tiếp giáp trong bộ nhớ và bạn không muốn tiêu bộ nhớ chính với nhiều phân bổ tồn tại ngắn. Một ví dụ khác để phân vùng là ngôn ngữ kịch bản.
Nếu bạn muốn có một ví dụ về thay thế malloc cho mục đích chung, bạn có thể xem qua bộ cấp phát VMem của tôi . Nó đã được sử dụng trong một số trò chơi AAA được vận chuyển. Nó có các kỹ thuật hạn chế sự phân mảnh và giữ cho dung lượng bộ nhớ thấp, một điều rất quan trọng đối với các game console. Nó cũng rất nhanh dưới sự tranh chấp chủ đề cao. Trang web của tôi có tài liệu phong phú về các kỹ thuật này.