私のpowershellスクリプトはゆっくり実行されますが、powershellスクリプトをプロファイルする方法はありますか?powershellでのプロファイル(タイミング)の方法
答えて
あなたはPowerShellのデバッガでrandom-pausingを行うことができます。スクリプトの実行を取得し、実行中はCtrl-Cを押します。停止し、スタックを表示することができます。それはそれがどこにあるのか、それが何をしているのか、そしてなぜそれがあなたに伝えられます。一度だけではなく、これを何度も行います。
可能な限り、2倍の時間がかかるとします。それは、あなたがそれを中断するたびに、遅いことをしている確率を50%にする確率を意味します。だから、もしあなたが10回それを中断すれば、あなたは約5つのサンプルでそれを見るべきです。
できるだけ5倍かかるとします。それは時間の4/5が無駄になっていることを意味するので、10のうち8回程度が表示されるはずです。
時間の1/5が無駄であっても、約2回あなたがそれを行うより速い方法を見つけることができれば、あなたが2つのサンプルのように見えるものは、あなたに良いスピードの改善を与えるでしょう。
ここにスクリプトを投稿すると、正確な回答が得られます。
Measure-Commandを使用して、スクリプト内の各ステートメントがどれくらいの時間を費やしているかを確認できます。ただし、Measure-Commandで各ステートメントをラップする必要があります。
Trace-Commandは、スクリプトの実行時に何が起きているかをトレースするためにも使用できます。このコマンドレットの出力は非常に冗長です。
http://www.jonathanmedd.net/2010/06/powershell-2-0-one-cmdlet-at-a-time-104-trace-command.html
'Set-PSDebug -Trace 1#or 2'を使うと、 – Jaykul
ここでは、タイミングループをするための「テストハーネス」を構築する方法を示しますループの高速化に関する最近のブログだ:
http://www.dougfinke.com/blog/index.php/2011/01/16/make-your-powershell-for-loops-4x-faster/
簡単で簡単な貧弱なプロファイラは、ISEデバッガのコードをステップ実行するだけです。コードの一部がちょうどステップオーバーするか、いくつかのブレークポイントに実行されることによって、コードの一部の遅さを感じることがあります。
- 1. Windowsでのプロファイル方法は?
- 2. Node.jsのタイミング計測方法
- 3. ウェブアプリケーションでのプロファイルの使用方法
- 4. Swiftフレームワークのプロファイル方法
- 5. Silverlightアプリケーションのプロファイル方法は?
- 6. QtScriptコードのプロファイル方法は?
- 7. plpgsqlプロシージャのプロファイル方法
- 8. .netガベージコレクタのプロファイル方法?
- 9. djangoチャンネルのプロファイル方法は?
- 10. TensorFlowネットワークのプロファイル方法?
- 11. ゴルーチンの数をプロファイルする方法
- 12. プロファイルの作成方法Windows explorer.exe
- 13. 竜巻のコールバックをプロファイルする方法
- 14. RemoteWebDriverでFirefoxプロファイルを示す方法
- 15. PowerShellプロファイルは安全ではありませんか?
- 16. Javaの方法とタイミングは正確にはpaint()メソッドですか?
- 17. タイミングのためにPythonで2桁に丸める方法
- 18. Androidでのタイミング問題を回避する方法
- 19. Nvidia ShieldでAndroid RenderScriptコードの正しいタイミングを行う方法
- 20. @ powershellの使用方法
- 21. C#でのFSharpValue.GetUnionFieldsの達成方法(プロファイル259)
- 22. Mavenプロファイルでのパッケージングの指定方法は?
- 23. PowershellからPowershellコンソールウィンドウを開く方法
- 24. タイプのプロファイル依存関係でユーザーをリダイレクトする方法は?
- 25. C#でメモリとCPUの使用状況をプロファイルする方法
- 26. Visual Studio 2008でMsTestの単体テストをプロファイルする方法は?
- 27. VBAで特定のChromeプロファイルを開く方法
- 28. visualvmでアプリケーションの起動をプロファイルする方法
- 29. レジストリでOutlookプロファイルの署名設定を更新する方法
- 30. ハイパージャーコンポーザーのプロファイル接続を手動で作成する方法
コードを共有しますか?最も可能性の高い理由は、外部リソース(ネット、ファイルシステム、..)への依存です。 – stej