相关疑难解决方法(0)

C#中的每线程内存管理

继续从了解VS2010 C#并行性能分析结果的讨论,但更重要的是:

我有许多并行工作的线程(使用Parallel.For/Each),它们为小类使用许多内存分配.

这会在全局内存分配器线程上产生争用.

有没有办法指示.NET为每个线程预分配内存池并从该池中进行所有分配?

目前我的解决方案是我自己的内存池实现(全局分配的类型为T的对象数组,它们在线程中循环使用)这有很大帮助,但效率不高,因为:

  1. 我不能指示.NET从特定的内存片分配.
  2. 我仍然需要多次调用new来为池分配内存.

谢谢,
哈该

c# parallel-processing memory-management contention

4
推荐指数
1
解决办法
5276
查看次数