5

平均而言,这些调用中哪个更快?我听说mmap较小的分配更快,但我还没有听说过两者的比较。任何有关这些性能的信息都会很好。

4

1 回答 1

12

您应该使用特定的实现(如linux)来标记它,因为答案肯定会因实现而异。现在我假设 Linux,因为它是最流行的。

brk虽如此,理论上更可优化,实际上它在我的机器上运行速度快 10%。分配一页,这些是我得到的时间:

  • brk: 最少 2550 次循环,典型 2650 次循环
  • mmap: 最少 2700 次循环,典型 2800 次循环

我记得听到一些类似brk能够跳过锁定mmap信号量的说法,这可以解释这种差异。

注意:在调整我的测试以在计时之前进行虚拟调用后,我更新了这些时间,以确保代码都在缓存中。

于 2011-04-01T19:33:39.837 回答