【发布时间】:2013-02-13 14:54:55
【问题描述】:
我有一个程序经常使用海量数组,其中内存是使用mmap分配的
是否有人知道在提交内存之前大量分配地址空间的典型开销,无论是使用MAP_NORESERVE 分配还是使用稀疏文件支持空间? It5 让我印象深刻,mmap 不能免费,因为它必须为分配的空间创建页表条目。在实现我正在考虑的算法之前,我想对这种开销有所了解。
显然,答案将取决于平台,我对 x64 linux、sparc solaris 和 sparc linux 最感兴趣。我认为 1mb 页面的可用性使得 sparc 的开销比 x64 少。
【问题讨论】:
-
我根本不用担心开销。听起来像premature optimization。
-
@camelccc 真正的开销在您访问分配的内存时开始。也就是说,用于处理产生的中断并为其分配物理内存。在当前的高端系统上,64Kb 通常约为 60µs。您可能对高频交易中的零分配编程感兴趣。
标签: mmap