Даже самое базовое приложение с простым окном занимает несколько секунд, чтобы запустить его эквивалентные нагрузки Win32 в течение секунды.Почему приложения .Net работают медленнее?
Я читал, что задержка связана не с тем временем, которое требуется JIT, чтобы превратить код операции в машинный код, а время, затрачиваемое Windows на загрузку .Net framework.
Таким образом, используя tasklist.exe CLI приложение MS», я проверил, если mscoree.dll был уже загружен:
C:\>tasklist /m mscoree.dll
Image Name PID Modules
========================= ====== =====================
explorer.exe 368 mscoree.dll
BSQLServer.exe 652 mscoree.dll
TOTALCMD.EXE 408 mscoree.dll
Uedit32.exe 260 mscoree.dll
OUTLOOK.EXE 1912 mscoree.dll
Далее, я пробежал базовое приложение только с кнопкой ОК, но все равно потребовалось несколько секунд, чтобы будет отображаться.
Предполагая, что mscoree.dll действительно является доказательством того, что .Net загружен, по крайней мере, для обработки основных Windows, то почему задержка? FWIW, он находится на хосте XPSP3.
Даже если вся инфраструктура .Net загружается для каждого процесса, так как она уже запущена и запущена для других процессов, я предполагаю, что она просто скопирует код из этих других процессов в ОЗУ?
спасибо.
Edit: Похоже, что медленнее, начальный момент запуска было связано с помощью приложения антивирусную/брандмауэра, а не к JIT или погрузочной .Net. Другая возможная проблема: если ваше приложение немного медленно запускается из холодного состояния, убедитесь, что он загружает только минимальный минимум во время запуска.
Как вы используете приложение и какое приложение оно? Вы пробовали простое консольное приложение, запускаемое из командной строки (как минимальный тест)? –
Вы можете попробовать использовать [Process Monitor] (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx), чтобы увидеть, что на самом деле происходит до тех пор, пока вы не увидите пользовательский интерфейс приложения. Это будет включать такие события, как загрузка DLL, доступ к файлам и/или сети. –
Трудно ответить из-за явно противоречивой/неправильной информации в вопросе. Кто сказал вам, что начальная задержка не связана с JIT? –