tbb::scalable_allocator
Intel Threading Building Blocks 中的实际作用是什么?
它当然可以有效。我刚刚用它来减少 25% 的应用程序执行时间(并看到 CPU 利用率在 4 核系统上从 ~200% 增加到 350% std::vector<T>
)std::vector<T,tbb::scalable_allocator<T> >
。另一方面,在另一个应用程序中,我看到它使已经很大的内存消耗翻了一番,并将东西发送到交换城市。
英特尔自己的文档并没有提供太多内容(例如,本常见问题解答末尾的一小部分 )。在我自己深入研究它的代码之前,谁能告诉我它使用了什么技巧?
更新:第一次使用 TBB 3.0,并从可扩展分配器中看到了我最好的加速。将单个更改vector<int>
为vector<int,scalable_allocator<int> >
减少某些东西的运行时间从 85 秒到 35 秒(Debian Lenny,Core2,TBB 3.0 来自测试)。