【发布时间】:2016-10-03 14:57:31
【问题描述】:
我正在尝试调查一个性能问题,即应用程序在我们的一台服务器上以 64 位运行时运行缓慢,而在同一台计算机上以 32 位运行或在其他任何地方以 64 位运行时运行快速。
我发现这可能与所使用的 JIT 编译器有关。有没有办法告诉我正在使用哪个 JIT 编译器来运行我的应用程序?我想看看它在服务器上与在 64 位版本工作正常的其他计算机上是否不同。
【问题讨论】:
-
我怀疑你的性能问题来自 JIT 编译器,最好检查你的代码并尝试重构它,不要浪费时间。
-
不确定如何判断哪个是活动的,但您当然应该明确尝试enabling/disabling RyuJIT 并比较性能。它有一些错误,因此可能会出现性能问题。
-
这可能是一个有用的链接。 Where exactly is .NET Runtime (CLR), JIT Compiler located? 您可以查看每个服务器上的 DLL 文件版本,看看是否有差异。我不确定这是否是 RyuJIT 64 位编译器的位置。
-
根据我的(有偏见的)经验,我怀疑该特定服务器存在更明显的环境问题。它可能是来自不同子网的任何东西、那里的慢速 DNS 服务器或新的病毒扫描引擎更新(错误或旧的 .NET 安装)。要找出这一点,您应该在该服务器上分析您的应用程序。否则,您很可能永远找不到根本原因,因为有很多可能性会使您的应用程序变慢。一种可能是 .NET 4.6.0 安装存在 GC 性能错误。见aloiskraus.wordpress.com/2016/07/31/…
标签: c# performance