對於序列化系統,我需要分配緩衝區來寫入數據。所需的大小並不是預先知道的,所以基本模式是malloc
N
字節,如果需要更多,則使用realloc
。 N
的大小將足夠容納大多數物體,使重新分配變得非常罕見。什麼是適合中型內存分配的大小?
這讓我覺得有可能是一個最佳的初始字節數,malloc
可以比其他人更容易滿足。我猜在接近pagesize
的地方,雖然不一定完全如果malloc
需要一些家務管理的空間。
現在,我確定這是一個無用的優化,如果它真的很重要,我可以使用一個池,但我很好奇;我不能成爲第一個認爲給我的程序員,不管是哪一個字節塊都是最容易分配的,作爲開始。有沒有辦法確定這一點?
接受任何專門適用於現代GCC/G ++和/或Linux的答案。
優化本身並不是無用的,但也許你應該等待優化,直到有一個具體的需求呢?或者你的手上有太多時間? :-) – 2011-04-07 01:16:59
@Anders:如果我花幾個小時來研究這個,那可能是在浪費時間。看到我是否好奇可以在SO上得到答案似乎對我來說時間有效:) – porgarmingduod 2011-04-07 01:23:04
@Anders K:根據我的經驗,大多數有關優化問題的海報需要關於該做什麼而不是不該做什麼的輸入。 – 2011-04-25 15:29:32