2011-01-24 7 views

答えて

3

あなたはPowerShellのデバッガでrandom-pausingを行うことができます。スクリプトの実行を取得し、実行中はCtrl-Cを押します。停止し、スタックを表示することができます。それはそれがどこにあるのか、それが何をしているのか、そしてなぜそれがあなたに伝えられます。一度だけではなく、これを何度も行います。

可能な限り、2倍の時間がかかるとします。それは、あなたがそれを中断するたびに、遅いことをしている確率を50%にする確率を意味します。だから、もしあなたが10回それを中断すれば、あなたは約5つのサンプルでそれを見るべきです。

できるだけ5倍かかるとします。それは時間の4/5が無駄になっていることを意味するので、10のうち8回程度が表示されるはずです。

時間の1/5が無駄であっても、約2回あなたがそれを行うより速い方法を見つけることができれば、あなたが2つのサンプルのように見えるものは、あなたに良いスピードの改善を与えるでしょう。

4

ここにスクリプトを投稿すると、正確な回答が得られます。

Measure-Commandを使用して、スクリプト内の各ステートメントがどれくらいの時間を費やしているかを確認できます。ただし、Measure-Commandで各ステートメントをラップする必要があります。

Trace-Commandは、スクリプトの実行時に何が起きているかをトレースするためにも使用できます。このコマンドレットの出力は非常に冗長です。

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

+0

'Set-PSDebug -Trace 1#or 2'を使うと、 – Jaykul

0

簡単で簡単な貧弱なプロファイラは、ISEデバッガのコードをステップ実行するだけです。コードの一部がちょうどステップオーバーするか、いくつかのブレークポイントに実行されることによって、コードの一部の遅さを感じることがあります。

関連する問題