通过重用已经分配的现有内存,空闲列表是加速分配的常用方法。有没有办法在并发分配器中使用空闲列表,而不会为每个分配产生锁定开销(这会抵消空闲列表的预期性能增益)?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以拥有特定于线程的免费列表块。
基本上,有一些系统填充了空闲列表(例如垃圾收集器)。然后每个线程可以有自己的空闲列表块,包含少量条目。锁定将用于分配新块。如果有30个条目的块,则每30个分配只会锁定一次。相反,使用特定于线程的块可能需要更快地运行GC,因为即使某些特定于线程的块仍有一些空闲条目,共享列表也可能变为空。