我希望了解CLR在JIT编译中应用的范围和顺序。例如,如果我的应用程序只调用给定类的一个方法,那么该类的未使用方法是否会被不必要地JIT编译?如果是,它们是否在执行我所需的一个方法之前全部被JIT编译,还是在需要时才进行懒惰编译?
对于方法中的分支怎么办?CLR是否允许编译方法中一半的代码,同时允许同一方法中的另一个分支保持未编译状态,直到需要时再进行编译?
似乎随着时间的推移,我找到了一些提供这些细节的文章,但现在我找不到任何提供CLR如何选择JIT代码段的综合可读摘要。有什么建议的书籍或链接吗?
最好的情况是,这样的指南将按.NET版本将JIT决策逻辑进行分解。
对于方法中的分支怎么办?CLR是否允许编译方法中一半的代码,同时允许同一方法中的另一个分支保持未编译状态,直到需要时再进行编译?
似乎随着时间的推移,我找到了一些提供这些细节的文章,但现在我找不到任何提供CLR如何选择JIT代码段的综合可读摘要。有什么建议的书籍或链接吗?
最好的情况是,这样的指南将按.NET版本将JIT决策逻辑进行分解。