Насколько я помню, функция JIT'd, когда она называется второй раз.Главный метод JIT'd?
Как насчет основного метода? Будет ли код внутри JIT'd?
Если я замерил некоторый фрагмент кода, должен ли я завернуть его в функцию?
Насколько я помню, функция JIT'd, когда она называется второй раз.Главный метод JIT'd?
Как насчет основного метода? Будет ли код внутри JIT'd?
Если я замерил некоторый фрагмент кода, должен ли я завернуть его в функцию?
Все .NET (MSIL) код должен быть JIT'ed (компилируется в машинный код), прежде чем он может быть выполнен.
Возможно, вы имеете в виду тот факт, что, как только код был JIT'ed, он кэшируется. Накладные расходы JIT'ing только понесены один раз. Если вы хотите выполнить контрольный тест без накладных расходов JIT, вам придется «предварительно разогреть» ваш бенчмарк или, возможно, использовать NGEN для компиляции MSIL на постоянной основе.
Метод первый раз, когда он называется.
.Net не способен выполнять несмешанные методы.
Таким образом, main
сотрясается.
Чтобы ответить на стороне вопрос:
Если я MESURE некоторый кусок кода, должен я завернул его в функцию?
Это, по-видимому, связано с измерением производительности какого-либо кода, где обычный совет заключается в том, чтобы поместить его в метод и вызвать этот метод хотя бы один раз, прежде чем запускать циклы синхронизации. Это так, что вы избегаете служебных данных JIT, которые обычно возникают при первом вызове метода.