简单测试了一下, boost::object_pool 在thread_local 时 比 new/delete 快不少,但不是线程安全的,不能跨线程,一旦指针被复制post到其他线程,就废了,用 boost::singleton_pool 是全局的可以线程安全,但速度慢了很多, 上述三个函数 速度大概是 45 vs 100 vs 400的级别。
有没人 知道或 用过哪些 更好的实现的
[2025-01-09 19:10:41.099][5264:30972][info][memoryPoolTest.cpp:23]TimeCost:threadlocal,cost:25ms
[2025-01-09 19:10:41.101][5264:38744][info][memoryPoolTest.cpp:23]TimeCost:threadlocal,cost:27ms
[2025-01-09 19:10:41.122][5264:41876][info][memoryPoolTest.cpp:23]TimeCost:threadlocal,cost:49ms
[2025-01-09 19:10:41.131][5264:40668][info][memoryPoolTest.cpp:23]TimeCost:threadlocal,cost:57ms
[2025-01-09 19:10:41.145][5264:43864][info][memoryPoolTest.cpp:23]TimeCost:threadlocal,cost:71ms
[2025-01-09 19:10:41.162][5264:21132][info][memoryPoolTest.cpp:23]TimeCost:benchmark,cost:89ms
[2025-01-09 19:10:41.168][5264:24156][info][memoryPoolTest.cpp:23]TimeCost:benchmark,cost:95ms
[2025-01-09 19:10:41.170][5264:23256][info][memoryPoolTest.cpp:23]TimeCost:benchmark,cost:97ms
[2025-01-09 19:10:41.175][5264:47936][info][memoryPoolTest.cpp:23]TimeCost:benchmark,cost:102ms
[2025-01-09 19:10:41.180][5264:23776][info][memoryPoolTest.cpp:23]TimeCost:benchmark,cost:107ms
[2025-01-09 19:10:41.460][5264:30264][info][memoryPoolTest.cpp:23]TimeCost:threadsafe,cost:386ms
[2025-01-09 19:10:41.471][5264:18472][info][memoryPoolTest.cpp:23]TimeCost:threadsafe,cost:397ms
[2025-01-09 19:10:41.476][5264:46956][info][memoryPoolTest.cpp:23]TimeCost:threadsafe,cost:401ms
[2025-01-09 19:10:41.483][5264:13004][info][memoryPoolTest.cpp:23]TimeCost:threadsafe,cost:409ms
[2025-01-09 19:10:41.489][5264:17116][info][memoryPoolTest.cpp:23]TimeCost:threadsafe,cost:416ms
--
修改:Algoquant FROM 14.154.27.*
FROM 14.154.27.*