我最近在应用程序分析方面做了很多实验(使用 Visual Studio 性能向导)。在使用并发指标时,我注意到当应用程序以多个线程(后台和前台)运行时,跨核上下文切换率非常高。
知道通常大量的跨核上下文切换可能对应用程序性能有害,我想将其减少到最低限度。
除了最小化同时运行的线程数之外,在 .NET 应用程序中还有什么可能的方法来做到这一点?
最佳答案
您可以将其中一些线程关联到单个核心。但是您必须 be extremely careful when doing so - 因为它实际上可能会通过阻止 CLR/OS 将线程调度到可用内核来降低性能。
为此,您可以使用 BeginThreadAffinity 方法强制线程保持固定到特定处理器或内核的标识。
关于.net - 最小化跨核上下文切换的次数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3354514/