Tôi đang đùa giỡn với thuật toán bộ nhớ đệm nhất định, đó là thách thức một chút. Về cơ bản, nó cần phân bổ rất nhiều đối tượng nhỏ (mảng kép, 1 đến 256 phần tử), với các đối tượng có thể truy cập thông qua giá trị được ánh xạ, map[key] = array
. thời gian để khởi tạo mảng có thể khá lớn, thường là hơn 10 nghìn chu kỳ CPU.chiến lược để phân bổ/miễn phí rất nhiều đối tượng nhỏ
Theo lô tôi có nghĩa là khoảng gigabyte trong tổng số. đối tượng có thể cần phải được bật/đẩy khi cần thiết, thường ở những nơi ngẫu nhiên, một đối tượng tại một thời điểm. tuổi thọ của một đối tượng thường dài, phút hoặc hơn, tuy nhiên, đối tượng có thể phải chịu sự phân bổ/deallocation nhiều lần trong suốt thời gian của chương trình.
Điều gì sẽ là chiến lược tốt để tránh phân mảnh bộ nhớ, trong khi vẫn duy trì tốc độ phân bổ hợp lý phân bổ hợp lý?
Tôi đang sử dụng C++, vì vậy tôi có thể sử dụng mới và malloc. Cảm ơn.
Tôi biết có một câu hỏi tương tự trên trang web, Efficiently allocating many short-lived small objects, có phần khác biệt, an toàn chủ đề không phải là vấn đề ngay lập tức đối với tôi.
nền tảng phát triển của tôi là Intel Xeon, hệ điều hành Linux. Lý tưởng nhất là tôi cũng muốn làm việc trên PPC Linux, nhưng nó không phải là quan trọng nhất đối với tôi.
Nền tảng là gì? Tôi có nghĩa là, hệ điều hành, kiến trúc CPU, trình biên dịch, vv Điều này có thể ảnh hưởng đến câu trả lời đáng kể. –