Os métodos estáticos estão ansiosamente compilados (JIT'ed)?

Pelo que entendi, os métodos de instância e os métodos estáticos são tratados da mesma forma pelo compilador CLR e o código IL é JITted sempre que o método é chamado pela primeira vez. Hoje eu tive uma discussão com meu colega e ele me disse que os métodos estáticos não são tratados da mesma maneira que os métodos de instância. Ou seja, os métodos estáticos são JITted assim que o assembly é carregado no domínio do aplicativo, enquanto os métodos de instância são JITted como eles são chamados pela primeira vez.

Estou realmente confuso e não vejo uma razão por que os métodos estáticos devem ser compilados avidamente pelo CLR? Eu entendo sobre construtores estáticos ou métodos finalizadores dos Critical Finalizer Objects ou quando regiões de execução restritas são usadas. Mas se alguma classe tiver uma combinação de métodos estáticos e de instância, não sei ao certo por que todos os métodos estáticos seriam JITted assim que a montagem contendo a classe fosse carregada na memória?

Por favor, ajude-me a entender esse comportamento.

questionAnswers(2)

yourAnswerToTheQuestion