Профиль производительности показывает огромную нагрузку JIT-компилятора - PullRequest
2 голосов
/ 16 июля 2010

Я запускаю профиль производительности для приложения C # на виртуальной машине. Результаты показывают огромную нагрузку "JIT Compiler". Когда я копаю дальше, он показывает нечто, называемое Class Loader, как единственный метод, вызываемый JIT-компилятором.

Что я должен сделать, чтобы снизить нагрузку на JIT-компилятор?

Ответы [ 2 ]

2 голосов
/ 16 июля 2010

JIT - это компилятор 'Just In Time', который по сути компилирует ваш C # в исполняемый код, который может работать на текущем процессоре.

.Net поставляется с утилитой, называемой NGEN, которая создает собственное изображение вашего кода C #, которое не нуждается в JIT-тинге. Однако у этого есть и недостатки, прочитайте это:

http://codeidol.com/csharp/net-framework/Assemblies,-Loading,-and-Deployment/Native-Image-Generation-%28NGen%29/

И, наконец, вот ссылка на MS информацию о NGEN:

http://msdn.microsoft.com/en-us/library/6t9t5wcf%28VS.80%29.aspx

1 голос
/ 16 июля 2010

Вы можете попробовать использовать NGEN для предварительной JIT сборки в исходные образы. Это уменьшит издержки джитинга при загрузке приложения:

http://msdn.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx

Вы должны запустить этот инструмент на компьютере, где ваши сборки, т.е. ваша виртуальная машина.

...