問題タブ [benchmarkdotnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - BenchmarkDotNet でロギング インフラストラクチャをベンチマークする方法は?
ロギング、データアクセス、暗号化などを処理する内部フレームワークがあります。パフォーマンス、たとえばロギング機能を他の主流システム、つまり nlog、log4net、serilog と比較したいと思います。明らかに、ファイルやコンソールへのログ記録など、すべてのシステムに備わっている機能から始めます。
このような状況でBenchmarkDotNetは適用できますか? 私が読んだ例や論文のほとんどは、非常にタイトなループでの使用シナリオを示しており、主にディスクではなくメモリや CPU などの IO を使用しています。
演習として、Baseline 機能を使用してコンソールへの書き込みをベンチマークする xunit テストを作成しましたが、テストが完了せず、最終的にプロセスを強制終了したため、SO に関するこの投稿にたどり着きました。
BenchmarkDotNet を間違った方法で使用している場合、私が達成しようとしているものとより一致する別のテスト スーツはありますか?
ありがとう、スティーブン
c# - メソッド System.Collections.Immutable.ImmutableArray がありません
BenchmarkDotNet を使用して F# コードのベンチマークを行っています。コンソール アプリケーションからベンチマークを実行すると、すべて正常に動作します。
いくつかの簡単なテストのために、F# インタラクティブ ウィンドウからベンチマークを実行したかったのですが、ここで次の例外が発生します。
歴史的に、このコンストラクターは削除されて Collections.Immutable ライブラリに追加されたようですが、私は最新バージョン (1.3) を使用しており、含まれている必要があります。参照: ImmutableArray はどこにありますか?
さらに、これはコンソール アプリケーションの実行時に正常に機能します。問題は参照ライブラリのバージョンにあるのではないかと考えたので、コンソール アプリケーションですべての BenchmarkDotNet 関連の参照を調べ、FSX で同じものを参照していることを確認しました。
コンソール アプリケーションで正確なバージョンが使用されていることを確認しました。F# インタラクティブ ランタイムで使用される一部のライブラリは、コンソール アプリケーションで使用されていたものと同じではないようです。
LinqPad でも同様の問題が発生しているようです: https://github.com/dotnet/BenchmarkDotNet/issues/66
任意のヒントが適用されます。
c# - Visual Studio Ultimate 2012 に BenchmarkDotNet 0.10.2 をインストールできない
BenchmarkDotNet パッケージを Visual Studio 2012 Ultimate の新しい空のコンソール プロジェクトにインストールしようとしていますが、次のエラー ログが表示されます。
BenchmarkDotNet は一見シンプルに見えますが、私にはインストールできません! Visual Studio 2012 でこの問題を解決した人はいますか?
注: Visual Studio 2015 Community にインストールされましたが、これは実際の開発に使用できるバージョンではありません。
c# - BenchmarkDotNet の概要セクションのみを表示
私はいくつかの .net フレームワークのベンチマークを行っています。.net フレームワーク、C#、およびBenchmarkDotNetを使用しています。
私がやりたいことは次のとおりです。私は多くのベンチマーク テストを書いていますが、レポートの概要セクションだけに関心があります。テストの概要セクションのみを表示するように BenchmarkDotNet を構成するにはどうすればよいですか?
より明確にするためのスクリーンショットを次に示します。
f# - BenchmarkDotNet ジョブを特定のプラットフォームでのみ実行するように制限するには?
過去にネイティブ コードで作成したプログラムの F# ポートを作成しています。BenchmarkDotNetを使用してそのパフォーマンスを測定しました。また、アプリケーションの出力ディレクトリにネイティブ EXE を配置しました。
ネイティブ プログラムをベースライン ベンチマークとして設定したところ、F# プログラムよりも 5 倍高速であることがわかりました。思った通り!
ただし、ネイティブ プログラムは GitHub に投稿され、Win64 バイナリとしてのみ配布されます。別の OS を使用している誰かが実行しようとすると、クラッシュします。
では、このベンチマークが 64 ビット Windows でのみ実行されるように指定するにはどうすればよいでしょうか?