【发布时间】:2011-07-31 06:58:15
【问题描述】:
对于序列化系统,我需要分配缓冲区来写入数据。需要的大小事先不知道,所以基本模式是mallocN 字节,如果需要更多则使用realloc。 N 的大小足以容纳大多数对象,因此很少进行重新分配。
这让我认为malloc 可能比其他人更容易满足的最佳初始字节数。我猜想在pagesize 附近的某个地方,但不一定完全是malloc 需要一些空间来做家务。
现在,我确信这是一个无用的优化,如果它真的很重要,我可以使用一个池,但我很好奇;我不能成为第一个认为给我最容易分配的字节块作为开始的程序员。有没有办法确定这一点?
任何特别适用于现代 GCC/G++ 和/或 linux 的答案都将被接受。
【问题讨论】:
-
优化本身并不是没用的,但也许您应该等待优化,直到有具体需求?还是您手头有太多时间? :-)
-
@Anders:如果我自己花几个小时研究这个,那可能是在浪费时间。看看是否可以在 SO 上回答我感兴趣的问题对我来说似乎很省时:)
-
@Anders K:根据我的经验,大多数对优化问题有疑问的发帖者都需要输入关于做什么而不是不做什么的意见。
标签: c gcc memory-management premature-optimization page-size