1

有没有人在 Amazon EC2 实例上使用 .NET 4 Parallel 或 Task 框架使用默认 .NET ThreadPool 的经验?

文档说 .NET 将使用 Environment.ProcessorCount 来计算最佳线程数。但是,我不确定 EC2 实例是否会为您提供正确的 ProcessorCount,因为它是在计算单元上测量的,并且分配可能会因需要而异。

这样做的正确方法是什么?您是否必须制定并设置ParallelOptions.MaxDegreeOfParallelism 属性

4

1 回答 1

3

EC2 实例以计算单元衡量,但它们也有虚拟内核。例如,一个 X-Large 实例有 4 个核心 @ 2 个计算单元 - 总共 8 个计算单元。

完整的规范在这里: http: //gevaperry.typepad.com/main/2009/03/figuring-out-the-roi-of-infrastructureasaservice.html

鉴于您仍在使用核心,尽管是虚拟核心。最好让 .NET 找出它自己的线程池大小。从 .NET 框架的角度来看,EC2 实例与专用服务器没有太大区别。有些服务器有很多内核和一个大线程池,有些服务器有少量内核,因此线程池较小。把它留给 .NET 来解决。

于 2012-05-21T11:35:47.197 回答