【发布时间】:2012-03-01 12:56:53
【问题描述】:
我正在阅读有关Hoard内存分配器的论文,一切都可以理解,但有一件事不是,它如何减少多线程分配或释放内存时引起的堆争用,避免内存可能引入的错误共享分配器,同时,它对碎片应用严格的界限。他们是如何做到的?
【问题讨论】:
-
为什么不放弃线程并使用事件驱动编程呢?至少对于单进程程序来说,锁争用不会成为问题,因此您可能可以在没有那么大的锁定问题的 8 核机器上运行它。此外,如果您实现自己的空闲列表,例如 tcmalloc,它将成为您的程序有史以来最快的内存分配器。
-
问题是我正在使用多堆分配(为每个线程分配一个堆),因此使用事件驱动编程不会像上述方法那样令人满意。
标签: c++ c memory memory-management