只有一行的方法会达到性能?

Ram*_*Ram 3 .net c# optimization performance

在代码中定义了ValidateRequest方法

    private bool ValidateRequest()
    {
        return _doc != null;
    }
Run Code Online (Sandbox Code Playgroud)

从我想要检查_doc是否为null的所有地方调用此方法.此方法已在cs文件中使用了5次.

从性能的角度来看,建议只用一条线来定义一个方法是明智的吗?我认为在调用这个方法之前,所有来自被调用的东西都会被推到堆栈上,之后它会被从堆栈中拉出来.

有什么想法吗?

===编辑====

我使用的是.NET 3.5版

Mik*_*eSW 7

不要理会它.编译器可能会内联该方法,因为相应的IL非常短.

如果该方法有助于代码可维护性,因为它传达意图继续使用它


Jar*_*Par 7

将单行移动到方法中对您的应用程序产生重大影响的可能性极小.实际上很可能这不会产生任何影响,因为JIT可以选择内联这样的函数调用.我肯定会选择将检查保存在一个单独的方法中,除非探查器明确表明它是一个问题.

专注于编写清晰且抽象的代码.让分析器指导您解决真正的性能问题.


Lou*_*ann 5

一如既往:当你怀疑,基准!
当您进行基准测试时,请在发布模式下执行,否则您不会使用编译器优化进行基准测试.

之后,如果它确实影响了性能,您可以使用NGen内联它.
这篇SO帖子谈到了它.