Загрузка сценария powershell около 10000 раз - PullRequest
0 голосов
/ 01 августа 2010

У меня есть скрипт powershell, который выполняется во время процесса msbuild и проверяет некоторые вещи, извлекая информацию из файлов журнала.Сценарий загружает 2 XML-файла, а затем выполняет некоторую проверку данных, извлеченных из файлов журнала.Обычно запуск сценария занимает в среднем 1-2 секунды.Загрузка XML-файлов занимает около 800 мсек для запуска.Поскольку скрипт выполняется 10000 раз, он будет загружать эти xml-файлы каждый раз, добавляя время загрузки 10000 * .8 сек = 8000 сек.

Есть ли способ загрузить эти XML-файлы один раз, а затем позволить сценарию использовать их 10000 раз?Нужна срочная помощь.

Ответы [ 3 ]

1 голос
/ 02 августа 2010

Я думаю, у вас есть два варианта:

1) Используйте что-то кроме XML.Простой текстовый файл может быть проанализирован намного быстрее для простых пар ключ / значение, если вам не нужно намного более подробное описание данных XML.

2) Рефакторинг процесса сборки таким образом, чтобы PowerShell управлял MSBUILD для каждогоиз 10000 компонентов.Вы можете загрузить эти XML-файлы в начале и ссылаться на них по мере необходимости на любом из шагов.

1 голос
/ 02 августа 2010

Предполагая, что у вас есть скрипт powershell, который начинается как

params([string]$docPath)

$xdoc = [xml] (get-content $docPath)
// do stuff w/ $xdoc

изменить на

params([xml]$xdoc)
// do stuff w/ $xdoc 
1 голос
/ 02 августа 2010

Не знаю, возможно ли это в вашей ситуации, но когда ваш проект имеет 10.000 компонентов, возможно, сценарий powershell мог бы извлечь имена и местоположения компонентов из файлов .csproj и зациклить их самостоятельно. Не только сэкономит время на загрузку XML-файлов снова и снова, но и время загрузки среды powershell 10000 раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...