继续从了解 VS2010 C# 并行分析结果的讨论,但更重要的是:
我有许多并行工作的线程(使用 Parallel.For/Each),它们为小类使用许多内存分配。
这会在全局内存分配器线程上产生争用。
有没有办法指示 .NET 为每个线程预分配一个内存池并从这个池中进行所有分配?
目前我的解决方案是我自己的内存池实现(全局分配的 T 类型对象数组,在线程之间回收),这很有帮助,但效率不高,因为:
- 我不能指示 .NET 从特定的内存片进行分配。
- 我仍然需要多次调用new来为池分配内存。
谢谢,
哈盖