как профилировать (сроки) в powershell - PullRequest
2 голосов
/ 24 января 2011

Мой сценарий powershell работает медленно, есть ли способ профилировать сценарий powershell?

Ответы [ 4 ]

4 голосов
/ 24 января 2011

Размещение вашего сценария действительно поможет дать точный ответ.

Вы можете использовать Measure-Command, чтобы увидеть, сколько времени занимает каждое утверждение в вашем скрипте. Тем не менее, вы должны обернуть каждый оператор в Measure-Command.

Trace-Command также можно использовать для отслеживания того, что происходит при запуске скрипта. Вывод этого командлета может быть довольно подробным.

http://www.jonathanmedd.net/2010/06/powershell-2-0-one-cmdlet-at-a-time-104-trace-command.html

3 голосов
/ 24 января 2011

Вы можете сделать случайную паузу в отладчике Powershell.Запустите скрипт, и пока он работает, введите Ctrl-C.Он остановится и вы сможете отобразить стек.Это скажет вам, где он, что он делает и почему.Сделайте это несколько раз, а не один раз.

Предположим, это занимает вдвое больше времени, чем могло бы.Это означает, что каждый раз, когда вы прерываете это, вероятность того, что вы поймете это, делая медленную вещь, составляет 50%.Поэтому, если вы прервете его 10 раз, вы должны увидеть это примерно на 5 сэмплах.

Предположим, что это занимает в 5 раз больше времени, чем могло бы.Это означает, что 4/5 времени тратится впустую, поэтому вы должны видеть это примерно в 8 раз из 10.

Даже если всего лишь 1/5 времени теряется, вы должны увидеть это примерно2 раза из 10. Все, что вы увидите всего за 2 образца, если вы найдете более быстрый способ сделать это, даст вам хорошее улучшение скорости.

3 голосов
/ 24 января 2011

Вот недавний блог о ускорении для циклов, который показывает вам, как создать «тестовую систему» ​​для циклов синхронизации:

http://www.dougfinke.com/blog/index.php/2011/01/16/make-your-powershell-for-loops-4x-faster/

1 голос
/ 16 июня 2017

Быстрый и простой профилировщик для бедняков - это просто пошаговое выполнение кода в отладчике ISE.Иногда вы можете почувствовать, насколько медленной является часть кода, просто переступая через нее или работая до некоторой точки останова.

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