簡體   English   中英

分配大小會影響其速度嗎?

[英]Does allocation size affect its speed?

我的意思是-分配小的內存塊比分配大的內存塊快嗎? 即:

int * dummy = new int;    // A
int * dummy2 = new int[2];    // A
int * dummy3 = new int[1000000];    // B
VeryVeryBigStruct * dummy4 = new VeryVeryBigStruct;    // B

(A)將是小的分配, (B)將是大的分配。

我知道我可以編寫一個簡單的程序並為自己進行測試,但是我實際上嘗試過,即使QueryPerformanceCounter()對於單個小分配也返回0次(這有點令人驚訝,因為所有分配都這么慢。此外,對1個進行1次測試計算機幾乎不可靠,所以我想聽聽您對此事的了解。

另外,我想知道N字節的10個分配是否比10 * N字節的1個分配快/慢(我想說應該慢一些,但是誰知道)。

取決於操作系統。 但總的來說,它應該不會有太大的區別,因為像Linux這樣的系統(我假設是現代Windows等)都使用延遲分配。 即,他們分配虛擬內存空間而沒有實際分配物理內存,直到您訪問它為止。

您可以在此其他SO帖子中看到更多詳細信息:

malloc是否在Linux(和其他平台)上懶惰地為分配創建后備頁面?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM