【发布时间】:2014-06-24 00:39:56
【问题描述】:
我认为最好用一个例子来问我的问题
Method1(variable var1, variable var2)
{
Method2([null or default value goes here], var1, var2)
}
Method2(variable newvar, variable var1, variable var2)
{
//functionality
}
编译器是否会通过将所有对方法 1 的调用更改为对方法 2 的调用来优化我们的代码?我认为它会内联该方法。但是,如果 method2 调用 3 调用 4 调用 5 调用 6 怎么办?编译器是否将方法 1 调用更改为对方法 6 的调用,并使用它将具有的值?
【问题讨论】:
-
请记住,内联
Method1(或Method2)实际上可以节省 no 时间,除非 1)//functionality几乎没有,并且 2) 它被调用的次数足够多,以至于它占了很大一部分时间。因此,如果/当编译器/JITter 内联它时,它这样做只是因为在某些情况下它可能会有所帮助。 -
你为什么在乎?肯定还有更重要的事情需要担心吗?
标签: c# optimization methods compiler-construction il