2011-01-24 7 views
2

powershell 스크립트를 프로파일 링하는 방법이 있습니까? 내 powershell 스크립트가 느리게 실행됩니다.powershell에서 프로파일하는 방법 (타이밍)

+0

코드를 공유 하시겠습니까? 가장 가능성있는 이유는 외부 리소스 (넷, 파일 시스템, ..)에 대한 의존성입니다. – stej

답변

4

여기에 스크립트를 게시하면 정확한 답변을 제공하는 데 도움이됩니다.

Measure-Command를 사용하면 스크립트의 각 명령문이 얼마나 오래 걸리는지 알 수 있습니다. 그러나 각 명령문을 Measure-Command에 래핑해야합니다.

Trace-Command는 스크립트 실행시 발생하는 상황을 추적하는데도 사용할 수 있습니다. 이 cmdlet의 출력은 매우 자세하게 표시 될 수 있습니다.

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

+0

'Set-PSDebug -Trace 1 # or 2' 명령을 사용할 수 있습니다. – Jaykul

3

여기에 어떻게 타이밍 루프에 대한 "테스트 도구"를 구축하는 방법을 보여줍니다 루프 가속화에 대한 최근 블로그입니다 . 스크립트를 실행하고 실행 중일 때 Ctrl-C를 입력하십시오. 중지하고 스택을 표시 할 수 있습니다. 그게 어디 있는지, 무엇을하는지, 왜하는지 알려줄 것입니다. 한 번만이 아니라 여러 번하십시오.

가능한 한 두 배의 시간이 걸린다 고 가정합니다. 그건 당신이 방해 할 때마다 느린 것을하는 것이 잡히는 확률이 50 %라는 것을 의미합니다. 그래서 만약 당신이 그것을 10 회 중단한다면, 당신은 약 5 개의 샘플에서 그것을 볼 수 있습니다.

가능한 한 5 배의 시간이 걸린다 고 가정합니다. 그것은 시간의 4/5가 낭비되고 있음을 의미하므로 10에서 8 배 정도를보아야합니다.

시간의 1/5만큼 낭비되고 있더라도, 약 2 번보아야합니다 당신이 2 샘플 정도 밖에 안다면, 빠른 방법을 찾을 수 있다면, 당신에게 좋은 속도 향상을 줄 것입니다.

0

간단하고 단순한 불쌍한 사람의 프로파일 러는 ISE 디버거에서 코드를 단계적으로 수행하기 만하면됩니다. 코드의 일부가 얼마나 느린지를 느낄 때가 있습니다. 코드의 일부를 실행하거나 중단 점을 실행하는 것입니다.

관련 문제