以下哪种调用平均速度更快?我听说mmap对于较小的分配速度更快,但我还没有听说过两者之间的比较。任何关于这些表现的信息都会很好。mmap vs sbrk,性能对比
回答
您应该为此标记一个特定的实现(如linux
),因为回答肯定因实现而异。现在我会认为Linux是最受欢迎的。
即使这样说,brk
在理论上更加优化,实际上它在我的机器上运行速度提高了10%左右。分配一个页面,这是时代我得到:
brk
:分钟2550次,典型的2650个周期mmap
:分钟2700次,典型的2800个周期
我记得,在听证会的东西brk
行可以跳过锁定mmap
信号量,这可以解释这种差异。
说明:我在调整我的测试之前更新了这些时间,以在定时之前进行虚拟调用,以确保代码全部位于高速缓存中。
奇怪的是我mmap实际上运行得比sbrk快,但是再次用sbrk它可以保持内存连续。 – 2011-04-04 16:24:41
也许你的系统的'sbrk'正在执行一些用户空间锁定或记帐,或者甚至两次调用'brk'系统调用。 (一旦获得旧的'brk'并再次设置新的...?)如果你正在实现'malloc',我不会依赖系统库的'sbrk',而是自己创建'brk'系统调用。 – 2011-04-04 16:42:41
我最终使用mmap作为从系统中获取内存的主要方式,并在使用MAP_FAILED的情况下使用sbrk作为备份,我可以尝试使用brk调用来查看它的性能。 – 2011-04-04 16:48:19
- 1. 用`mmap`代替`sbrk`
- 2. CUDA vs OpenCL性能对比
- 3. mmap(2)vs mmap(3)
- 4. Linux/perl mmap性能
- 5. SHMEM VS tmpfs的VS MMAP
- 6. malloc vs mmap C
- 7. Derby vs PostgreSql性能比较
- 8. 性能比较MPI vs OpenMP
- 9. C#VS C++性能比较
- 10. 性能比较TcpClient vs HttpWebRequest
- 11. mmap vs fileinput的优点
- 12. Boost mmap性能vs本地内存映射
- 13. mysql性能对比
- 14. Drupal vs WordPress的性能比较
- 15. Sql Server int vs nvarchar性能比较?
- 16. 需要性能比较AsyncQueryHandler vs CursorLoader Android
- 17. NSArray vs C Array性能比较
- 18. Intel HD GPU vs Intel CPU性能比较
- 19. MySQL vs PostgreSQL的现实性能比较
- 20. 性能比较this.setState(this.state)VS this.setState({})
- 21. eÌ对比vs
- 22. PostgreSQL的性能对比:左加入工会VS所有
- 23. mmap()vs malloc()返回地址
- 24. 使用mmap时性能下降
- 25. APC vs自定义Mmap扩展
- 26. 匿名mmap零填充?
- 27. 亚马逊的m1.small VS微比如CPU性能比较
- 28. UNION VS性能
- 29. 内存分配阈值(mmap vs malloc)
- 30. mmap替代malloc
你知道他们做类似但不同的事情吗? – DarkDust 2011-04-01 18:55:55
是的,我愿意。我只是想知道,如果在可接受的情况下替换另一个会导致性能差异。 – 2011-04-01 18:57:06
您的里程可能会有所不同。最好根据您关心的确切环境进行衡量。 – bmargulies 2011-04-01 19:08:15