0
在我的程序中我創建了一個大型的(〜1000萬個元素)對象列表,其中每個對象大約有500個字節。目前的分配是這樣的:大分配 - 像連續虛擬內存一樣?
const int N = 10000000;
object_type ** list = malloc(N * sizeof * list);
for (int i=0; i < N; i++)
list[i] = malloc(sizeof * list[i]);
該工程確定 - 但我發現,隨着大量的小分配的運行時顯著一部分進入到malloc()和隨後的free()的調用。我希望改變實現以分配更大的塊。對我來說最簡單的辦法就是把所有東西都分配成一個大塊。
現在我知道在用戶空間內存模型和實際物理內存之間至少存在一個虛擬化級別,但是仍然存在一個風險,那就是我會遇到難以獲得如此大的「連續」內存塊的問題?
謝謝你的回答。 – user422005