我们经常被告知这样的事情,
If you're calling a method with a return value that doesn't change, take it out of the loop.
例如,当编写如下代码时:
for(int i=0; i < Instance.ExpensiveNonChangingMethod(); i++)
{
// Stuff
}
我想知道您是否可以告诉编译器在给定相同输入(和对象实例)的情况下您将获得相同的输出,这样它就会知道它可以将其移出循环作为优化过程的一部分。
有这样的东西吗?也许像 code-contracts或 spec# ?或者他们已经可以做这种事情了吗?
是否可以想象编译器可以推断出一个方法是 pure function它自己?
有什么我可以在 C# 中使用的东西可以使编译器执行更多的优化吗? 是的,我知道过早优化。我问这个问题主要是出于好奇,但如果确实存在类似上述的方法,一旦方法被标记,它将是“免费的”。
最佳答案
关于c# - 有哪些关键字/工具可以帮助编译器优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6743462/