Наше приложение занимает значительно больше времени для запуска после перезагрузки (холодный старт), чем если бы он был открыт один раз (теплый старт).
В большинстве случаев (если не все) разница, по-видимому, происходит от загрузки DLL, когда DLL файлы находятся в кэшированных страницах памяти, они загружаются намного быстрее. Мы попытались использовать ClearMem, чтобы имитировать перезагрузку (поскольку ее гораздо меньше времени, чем перезагрузка) и получили смешанные результаты, на некоторых машинах он, казалось, имитировал перезагрузитесь очень последовательно, а в некоторых нет.
Подводя итоги, следующие вопросы:
- Испытывали ли вы различия в времени запуска между холодным и теплым пусками?
- Как вы делитесь такими различиями?
- Знаете ли вы, как легко смоделировать перезагрузку?
Edit:
Разъяснения для комментариев:
- Приложение в основном является родным С++ с некоторыми .NET(первая сборка .NET, загружаемая для CLR).
- Мы стремимся улучшить время загрузки, очевидно, что мы сделали свою долю профилирования и улучшили горячие точки в нашем коде.
Что-то, о чем я забыл упомянуть, было то, что мы получили некоторое улучшение за счет повторного базирования всех наших двоичных файлов, чтобы загрузчик не выполнял его во время загрузки.