【问题标题】:@ServiceHost Debug="true" - performance penalty?@ServiceHost Debug="true" - 性能损失?
【发布时间】:2023-04-03 16:45:05
【问题描述】:

在 svc 文件中设置 Debug="true" 是否会降低性能?是否足以保证在生产环境中将其设置为“false”?

%@ ServiceHost Language="C#" **Debug="true"** Service="AwesomeService" %>

谢谢

【问题讨论】:

    标签: .net wcf performance svc


    【解决方案1】:

    在您的".svc" 文件中,如果您将服务编写为内联 代码,或在“App_Code”文件夹中实现服务并启用debug 模式,它会影响性能。

    通常,在部署到生产环境之前,请始终设置 debug="false"。如果启用调试模式,您的应用程序的性能可能会降低。

    在发布模式下,调试符号不会被烘焙到程序集中,因此 您无法使用 Visual Studio .NET 或其他源代码对其进行调试 调试器。很酷的是代码也在这期间进行了优化 构建操作。

    【讨论】:

      【解决方案2】:

      似乎此开关仅控制内联代码的调试符号生成。

      用于代码隐藏生成的调试符号由其他选项控制。

      如果您没有内联代码,则不会影响性能。


      同时MSDN states如下:

      调试

      指示是否应使用调试符号编译 Windows Communication Foundation (WCF) 服务。如果应使用调试符号编译 WCF 服务,则为 true;否则为假。

      【讨论】:

        【解决方案3】:

        简短的回答是是的,但如果您想了解所有血淋淋的细节,请查看此主题的 StackOverflow answer

        【讨论】:

        • 这篇博文已经很老了,有些地方已经过时了。
        • 旧并不意味着不正确,debug = true 的效果在 IIS 7.5 中仍然适用,并且无论哪个版本的程序集符合 debug = true 时都会关闭内部编译器优化您使用的 ASP.NET。如果您有任何不准确的细节,请解释。
        猜你喜欢
        • 1970-01-01
        • 2012-02-08
        • 2010-12-17
        • 2019-02-09
        • 2018-08-22
        • 1970-01-01
        • 2021-06-30
        • 2018-04-17
        • 2012-08-23
        相关资源
        最近更新 更多