WPFアプリケーションがあり、デバッグ目的でコンソールに表示されているメッセージがあります。これは、アプリケーションがWindowsアプリケーションとして構成され、コンソールが表示されていない場合、アプリケーションのパフォーマンスに影響しますか?はConsole.WriteLineでWindowsアプリケーションのボトルネックですか?
答えて
Console.WriteLine()の実際のボトルネックは実際にコンソールに書き込んでいます。 は本当にで、特にコンソールをスクロールする必要があるときには高価です。 Visual Studioのホスティング・プロセスには、コンソールがなく、出力ウィンドウに表示されているときに出力をキャプチャするかなりのオーバーヘッドもあります。
あなたのアプリケーションを配備した後もどちらも役割を果たしません。しかし、はい、すべてのメソッド呼び出しが行われていて、文字列がフォーマットされています。Windows api関数がコンソールがないことが判明したときには、ビットバケットにしか落ちません。
デバッグビルドで実行しているときに、アプリが許容範囲内であれば、心配する必要はありません。デバッガなしでリリースビルドに恒星のperfが表示されず、Console.WriteLine()によって引き起こされた可能性があると思うなら、Search + Debug.Print()に置き換えてください。
ボトルネックは、コード内で最も遅いことを意味します。あなたがやっていることを他に知っていなければ、それを知ることはできません。
おそらく、パフォーマンスの影響はありますか?それは何もしていない、それは何かをやっている。あなたのプログラムのボトルネックには十分であろうか、私はそれを非常に疑っています。それは目に見える影響を及ぼすことさえあれば十分ですが、それは可能ですが、ありそうもありません。それはあなたのプログラムが何をしているのか、コンソールに書き込んでいる量に依存します(それにかかる時間に気付くにはかなりの時間が必要です)。
コメントは、Console.WriteLine
ではなくDebug.WriteLine
を使用すると、デバッグ時に出力を確認できますが、リリースビルドをコンパイルすると、それらの文は印刷されません。
何かをすることは何もしないよりも時間がかかります。
Nullコンソールにテキストを書き込む行為は、パフォーマンス上の大きなヒットではなく、パラメータとして渡される内容とどのような量であるべきかを示します。
コンソールの出力の有無にかかわらず実際のパフォーマンスを測定し、使用パターンが許容範囲内かどうかを自分で確認します。
Debug.WriteLine()は、リリース用にビルドするときに自動的に除外されるため、要件に応じてより適切な選択肢になります。
独自のログフレームワークを構築して最適化するのは、めったに最適な方法ではありません。
あなたはlog4netのようなものを見ましたか?コンソールへのロギングなど、さまざまなアペンダーを設定できます。また、非同期アペンダーを作成して、ロギングオーバーヘッドを大幅に削減することもできます。
erick
- 1. console.writelineスレッドは安全ですか?
- 2. NServiceBus:NSBディストリビュータがボトルネックですか?
- 3. Windows用のアプリケーションは5.0ですか?Windows用のアプリケーションは6.5ですか?
- 4. WindowsフォームアプリケーションでConsole.WriteLine()を使用する方法
- 5. Console.WriteLine(obj.ToString); vs Console.WriteLine(obj);
- 6. WCFサービスのルーティング、ボトルネックですか?
- 7. Rails ActionCableとEmber CLIアプリケーション - リソースのボトルネック
- 8. Console.WriteLineをはx64の
- 9. は、Console.WriteLineを
- 10. iphoneでOpenGLアプリケーションのボトルネックを見つける
- 11. C#Console.WriteLineはどこから来たのですか
- 12. は.metaです。 regionserverはHbaseのボトルネックになりますか?
- 13. ロックがマルチスレッドプログラムのボトルネックになるのはなぜですか?
- 14. "Windows Phoneアプリケーション"と "Silverlight for Windows Phoneアプリケーション"の違いは何ですか?
- 15. mjpeg放送のボトルネックはどこですか?
- 16. CodeDomProviderのConsole.WriteLineテキスト
- 17. EventHandlerのConsole.Writeline
- 18. Windows Mobile 6.5アプリケーションはWindows Phone 7でも動作しますか?
- 19. Console.WriteLine()でのメモリ使用量の増加
- 20. Railsアプリケーションをインストゥルメントしてメモリ/パフォーマンスのボトルネックを特定するにはどうすればよいですか?
- 21. MapReduceシャッフルフェーズのボトルネック
- 22. createDataFrameのSparkRボトルネック?
- 23. IISのボトルネック?
- 24. WindowsでのiOSアプリケーション開発の選択肢は何ですか?
- 25. ます。Console.WriteLineに二つのリストから
- 26. Visual StudioコードでConsole.WriteLineが動作しないのはなぜですか?
- 27. Windows用のマルチメディアリッチなアプリケーションは、Pythonで十分ですか?
- 28. SqlDependencyは、C#のWindowsではアプリケーションのプロパティ
- 29. 16進数のConsole.WriteLine
- 30. Railsアプリケーションは、データベースではなくボトルネックになるほど遅くなる可能性がありますか?
まあ、デバッグのためになぜDebug.WriteLineを使用しないのですか? 「出力」ウィンドウに出力されますが、間違っていない場合は、Visual Studioのオプションを使用して直接ウィンドウにリダイレクトできます。 – erodewald
これを測定すると、あなたは確かに知っているでしょう:-) –
aspのための類似した質問。ネットは、答えが同じであることを保証しません:http://stackoverflow.com/questions/137660/where-does-console-writeline-go-in-asp-net –