如果线程numThreads 设为1的话, boost::singleton_pool 也并不慢,也就是说如果 线程竞争的概率很低的话 boost::singleton_pool 速度也还可以。
[2025-01-09 19:23:29.098][44384:15440][info][memoryPoolTest.cpp:23]TimeCost:threadlocal,cost:16ms
[2025-01-09 19:23:29.132][44384: 3324][info][memoryPoolTest.cpp:23]TimeCost:threadsafe,cost:49ms
[2025-01-09 19:23:29.137][44384: 6444][info][memoryPoolTest.cpp:23]TimeCost:benchmark,cost:55ms
【 在 Algoquant 的大作中提到: 】
: 简单测试了一下, boost::object_pool 在thread_local 时 比 new/delete 快不少,但不是线程安全的,不能跨线程,一旦指针被复制post到其他线程,就废了,用 boost::singleton_pool 是全局的可以线程安全,但速度慢了很多, 上述三个函数 速度大概是 45 vs 100 vs 400的级别。
: 有没人 知道或 用过哪些 更好的实现的
:
: ...................
--
修改:Algoquant FROM 14.154.27.*
FROM 14.154.27.*