我目前有大量的多线程服务器应用程序,并且我正在寻找一个好的多线程内存分配器。
到目前为止,我在以下两点之间左右为难:
- 太阳乌梅
- 谷歌的tcmalloc
- 英特尔的线程构建块分配器
- 埃默里·伯杰的宝藏
据我所知,hoard 可能是最快的,但我在今天之前没有听说过它,所以我怀疑它是否真的像看起来那么好。有人有尝试这些分配器的个人经验吗?
我使用过 tcmalloc 并阅读了有关 Hoard 的文章。两者都有相似的实现,并且都实现了相对于线程/CPU 数量的大致线性性能扩展(根据各自站点上的图表)。
所以:如果性能真的那么重要,那么就进行性能/负载测试。否则,只需掷骰子并选择列出的其中之一(根据目标平台上的易用性进行加权)。
并从trshiv 的链接 http://developers.sun.com/solaris/articles/multiproc/multiproc.html,看起来 Hoard、tcmalloc 和 ptmalloc 的速度都大致相当。总的来说,tt 看起来 ptmalloc 是为了占用尽可能少的空间而优化的,Hoard 是为了速度 + 内存使用的权衡而优化的,而 tcmalloc 是为了纯粹的速度而优化的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)