【问题标题】:How to Suppress JIT optimization in .NET Core如何在 .NET Core 中抑制 JIT 优化
【发布时间】:2020-09-18 15:55:48
【问题描述】:

我找不到在 .NET Core 2.2 进程中抑制 JIT 优化的方法。这使我无法在生产环境中附加调试器并查看所有局部变量。

在 .NET Framework 中,我可以添加一个与我想要阻止优化的 DLL 同名的 INI 文件,如 here 所示。但这似乎不适用于 .NET Core。

Visual Studio 和 dnSpy 等调试器能够在启动进程时抑制优化,因此它必须以某种方式实现。作为一种解决方法,我可以使用调试器启动一个进程,但我使用的是 IIS,但找不到使用它启动 w3wp 工作程序的方法。

【问题讨论】:

    标签: asp.net-core iis .net-core coreclr dnspy


    【解决方案1】:

    尝试为进程设置环境变量COMPlus_JITMinOpts=1

    【讨论】:

    • 你可以编辑这个听起来不那么像一个问题吗?
    • 您是否尝试过(如果可能)将调试版本部署到生产环境?它必须是一些环境变量...您可以使用调试器启动进程,您注意到 JIT 优化被抑制,然后使应用程序输出其所有环境变量。
    • 另外,通过让应用将该值输出到控制台或其他地方,确保您的应用实际看到 COMPlus_JITMinOpts=1
    • @AlexBuyny 是的,我确保使用日志记录 :) 至于部署调试版本 - 是的,它有效,但这正是我想要避免的。我希望能够在不重新部署的情况下进行更改。
    猜你喜欢
    • 2011-08-01
    • 2012-03-22
    • 2010-09-21
    • 1970-01-01
    • 2016-10-27
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多