Оптимизация запуска приложений .NET - Проверка Authenticode
ОГЛАВЛЕНИЕ
Проверка Authenticode
Сборки можно подписать с помощью сертификата Authenticode, используя средство signcode. Проверка Authenticode всегда негативно влияет на запуск, так как подписанные с помощью Authenticode сборки должны проверяться центром сертификации (CA). Проверка требует перепроверки CA, использованного для подписи сборок, а это очень ресурсоемкая операция, связанная с доступом в сеть (если CA не установлен локально на том же компьютере).
Лучше всего избегать сборок, подписанных с помощью Authenticode и использовать вместо них подписи строгими именами. Если подпись Authenticode необходима, в .NET Framework 3.5 проверку можно опустить с помощью следующего параметра конфигурации:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
Заметьте, однако, что даже в том случае, когда необходима подпись Authenticode, время проверки подлинности можно сильно сократить, просто установив сертификат CA на компьютер клиента.
Выводы
Получить хорошую скорость холодного запуска можно, в первую очередь, за счет лаконичности кода, выполняемого при запуске. Нужно отложить инициализацию, которая не является строго необходимой, проверить, чтобы ссылки не загружались слишком рано и попытаться использовать такие классы и методы, которое не загружают много кода. Помните, задача – сократить обращения к диску. Это нелегко, но Xperf, новое, полезное средство, включенное в новый разрабатываемый Windows Server® 2008 SDK, использует трассировку событий для Windows (ETW) для слежения за загруженными модулями, переключениями контекста и другими событиями, чтобы лучше определять, что происходит при запуске приложения. С помощью XPerf станет возможно собирать очень точные данные о времени запуска приложений. Боковая панель «Материалы о скорости запуска» содержит ссылки на дополнительную полезную информацию.
Клаудио Калдато (Claudio Caldato) руководитель проекта разработки Сборщика мусора в команде CLR корпорации Майкрософт.