0

ロギング、データアクセス、暗号化などを処理する内部フレームワークがあります。パフォーマンス、たとえばロギング機能を他の主流システム、つまり nlog、log4net、serilog と比較したいと思います。明らかに、ファイルやコンソールへのログ記録など、すべてのシステムに備わっている機能から始めます。

このような状況でBenchmarkDotNetは適用できますか? 私が読んだ例や論文のほとんどは、非常にタイトなループでの使用シナリオを示しており、主にディスクではなくメモリや CPU などの IO を使用しています。

演習として、Baseline 機能を使用してコンソールへの書き込みをベンチマークする xunit テストを作成しましたが、テストが完了せず、最終的にプロセスを強制終了したため、SO に関するこの投稿にたどり着きました。

BenchmarkDotNet を間違った方法で使用している場合、私が達成しようとしているものとより一致する別のテスト スーツはありますか?

ありがとう、スティーブン

4

1 に答える 1

5

BenchmarkDotNet は、CPU バウンド コードのマイクロベンチマークに最適です。IO バウンドのコードに影響を与える可能性のある要因は非常に多いため、マイクロベンチマークを優れたアプローチとは考えていません。

代わりに、可能であれば、各フレームワークをアプリに統合し、可能な限り現実的な条件下でパフォーマンスを測定することをお勧めします...「壊滅的な障害」の状態や、ロギングが打撃を受ける可能性が高いものを含みます。また、ベースラインの種類を決定できるように、何もしない (できるだけ早く何もしない) "null logger" でテストします。

これは、これらのロギング フレームワークが特定のアプリケーションでどのように動作するかを示すだけですが、それを見つけることが最も重要なことだと思います。

于 2016-07-03T20:13:22.003 に答える