Я рассматриваю возможность использования скриптов Powershell для триггеров на нашем сервере Perforce.К сожалению, даже на нашем быстром оборудовании для запуска Powershell все еще требуется 2 секунды.Теперь, похоже, это не так много времени, если не считать, что 200 пользователей постоянно набрасывают на сервер, а триггер может (в зависимости от условий) вызывать блокировку таблицы во время его работы, останавливая другие связанные запросы.
Я ищу способы сократить время запуска Powershell.Вещи, которые я нашел в Google:
- Уменьшите профиль. Это установка по умолчанию, без настройки профиля, без PSCX и т. Д., Так что это не поможет.
- Запустите NGEN на шикарных двоичных файлах. Это старый совет для выпуска V1.Мы находимся на V2.
- Держите его в тепле. Первоначальный шикарный запуск медленный, но последующие запуски быстрые.Также не полезно для нас.На сервере горячий запуск составляет 2 секунды, и он часто нагревается частыми запросами.
- Не используйте Powershell для этой цели. Что ж, я надеюсь избежать этого "решения"...
У кого-нибудь есть другие предложения по сокращению времени запуска?Я не ожидаю запуска так же быстро, как cmd.exe или приложение командной строки .NET, но если мне удастся добиться этого за 0,5 секунды, я думаю, что все будет в порядке.Невозможно?
ОБНОВЛЕНИЕ - оказывается, это проблема 4.0.Если я добавлю файл конфигурации, как описано в , другой вопрос SO , запуск займет 2 секунды.Если я оставлю его по умолчанию, то запуск займет менее четверти секунды.
Тогда я подумал ... возможно, это проблема 4.0 GAC.Поэтому я запустил скрипт в блоге PowerShell , но он говорит, что все сборки уже ngen'd.Я убедился, что он действительно использует 4.0 ngen.
Так что у меня есть два варианта:
- Выясните, почему 4.0 намного дороже, чем 3.5.
- Переключитесь на платформу 3.5, где она мне не нужна, и мне нужна производительность.
Я хотел бы решить первое, но не знаю с чего начать.Кто-нибудь может помочь?