2

クライアント/サーバー アプリケーションがあり、両方のプロファイルを作成して、「平均ログイン時間は xx ミリ秒で、xxx が最大、x が最小、yyyy 以降の合計 xx ログイン」などのメトリックを作成したいと考えています。

私は Equatec と ANTS プロファイラーを知っています (私はどちらもとても気に入っています)。しかし、私が必要とする機能を提供していないと思います。

もちろん、必要な関数を自分で作成することもできますが、ANTS や Equatec はそれを独自に行うことができるので、その機能を使用する方法があるはずです。

必要なもの:

  • 妥当なパフォーマンスを維持しながら、関数呼び出しに関するデータをできるだけ多く収集する

  • スケーリングは、監視したくないコード パスを選択 (選択解除) する場合と同様に有効です。

  • 収集されたすべてのデータをデータベース (ローカルまたはリモート SQL DB) に保存する

  • このツールが ANTS のようなグラフを独自に作成できれば素晴らしいですが、生のデータで十分です。

  • コードは C# 3.5 (サーバーとクライアント <-> サーバー通信) および C++ (クライアント GUI) で記述されています。C++コード(C#はCOMオブジェクトとして埋め込まれている)も監視できれば良いのですが、当面はC#の監視で十分でしょう

これは無料で提供される必要はありませんが、テストのためのトライアルは必須です。

4

2 に答える 2

0

ここに私が今考えることができるいくつかのオプションがあります:

  1. プロファイリングする関数のタイミングを具体的に示す独自のコードを記述します (明らかに最も簡単なオプション)。
  2. パフォーマンス カウンター ( System.Diagnostics.PerformanceCounter ) を使用します。
  3. .NET プロファイリング APIを使用して独自のプロファイラーを展開する
  4. パフォーマンス ツールキットのXperfと呼ばれる低レベルの組み込み OS プロファイラーを使用します。

編集:この小さな宝石をどうやって忘れることができますか!

MiniProfilerは、次のようにコードをラップできます。

var profiler = MiniProfiler.Current; // it's ok if this is null
using (profiler.Step("Doing complex stuff")){
    using (profiler.Step("Step A"))
    { // something more interesting here
        Thread.Sleep(100);
    }

    using (profiler.Step("Step B"))
    { // and here
        Thread.Sleep(250);
    }
}
于 2012-11-24T09:55:14.180 に答える