Память. можно кэшировать, это работа ngen.exe.Он генерирует версию сборки .ni.dll, которая содержит машинный код и хранится в GAC.Который автоматически загружается позже, минуя шаг JIT.
Но это не имеет отношения к тому, почему ваша программа запускается быстрее во второй раз.В первый раз у вас так называемый «холодный старт».Который полностью доминирует время, потраченное на поиск DLL на жестком диске.Во второй раз, когда у вас горячий старт, библиотеки DLL уже доступны в кеше файловой системы.
Диски работают медленно.SSD - очевидное исправление.
Замечание: это не проблема, которая является исключительной для управляемого кода.У больших неуправляемых программ с большим количеством DLL тоже есть.Два канонических примера, представленные на большинстве машин разработчика, - это Microsoft Office и Acrobat Reader.Они обманывают.После установки они помещают «оптимизатор» в раздел реестра «Выполнить» или в папку «Автозагрузка».Все, что делают эти оптимизаторы - это загружают все библиотеки DLL, которые использует основная программа, и завершают работу.Это заполняет кэш файловой системы, когда пользователь впоследствии использует программу, она запускается быстро, так как ее горячий запуск быстрый.
Лично я считаю это чрезвычайно раздражающим.Потому что то, что они действительно делают, - это замедляет работу любой другой программы, которую я могу захотеть запустить после входа в систему. Это редко бывает Office или Acrobat.Я хочу удалить эти оптимизаторы несколько раз, если это необходимо, когда обновленное обновление возвращает их обратно.
Вы также можете использовать этот прием, но ответственно, пожалуйста.