Боюсь, вы упускаете главное, что делает Джит.Он компилирует cil , который не зависит от процессора и платформы, в машинный и машинный код специфичный .
JIT компилирует только тот код, который действительно необходим в этой точке.
Да, при первом вызове вашего метода Jit компилирует его, поэтомуname Компилятор Just-In-Time .
Так что, я думаю, он скомпилирует метод дырок из 100 случаев, верно?
Да.
Неужели на самом деле не известно, какая часть этого метода нужна правильно?но если бы я разделил этот метод, он на самом деле скомпилирует то, что ему нужно, верно?
Теперь здесь возникает путаница, да, он скомпилирует весь метод, но обратите внимание, что это будет только один раз для каждого приложениязапускать.Поскольку Jit компилируется во время выполнения, мы можем сказать, что при первом вызове метода незначительное *1027* влияние на производительность будет вызвано, можно утверждать, что для разделения этого метода на несколько методов потребуется несколько Jit-компиляций..
С учетом вышесказанного, если вы работаете над каким-то очень высоким требованием к производительности приложения и беспокоитесь о недостатке Jit, вы всегда можете использовать ngen и компилировать нативные изображения перед запуском приложения.и затем CLR может использовать эти изображения для ускорения процесса для вас, и это удалит Jit-компиляцию, как это было в основном до запуска приложения.Я могу понять, как это может быть полезно для приложений, заботящихся о холодных стартапах, таких как приложения, размещенные на функциональных платформах в качестве сервисов, но это насколько я могу пойти на примерах из реального мира.
И, наконец,
Как бы это сравнить друг с другом с точки зрения производительности?
Если честно, я никогда не буду беспокоиться о влиянии компиляции Jit, я бы лучше сосредоточился наструктуры данных, которые я использую, или специфическую для домена логику, которую я имею, чтобы улучшить свою производительность.