0

最後のパフォーマンス反復以降に発生した操作の回数を表示しようとしています。以下を使用してパフォーマンスカウンターを作成しました。

var clearStateCounterData = new CounterCreationData()
{
    CounterName = ClearStateName,
    CounterHelp = "The number of times the service state has been cleared since the last performance iteration",
    CounterType = PerformanceCounterType.CounterDelta32
};

次に、アプリケーションを呼び出しcounter.Increment()ますが、パフォーマンス カウンターの値が移動することはありません。1秒間に複数回実行しても。

PerformanceCounter に何かを表示させるために必要な特別なもの、またはインクリメントする必要がある特定の値はありますか?

理解した

このカウンターの使用例を以下の回答に示します。助けてくれてありがとう。

4

3 に答える 3

1

これが私のために働いた例です。

class Program
{
    const string CategoryName = "____Test Category";
    const string CounterName = "Clear State Operations";

    static void Main(string[] args)
    {
        if (PerformanceCounterCategory.Exists(CategoryName))
            PerformanceCounterCategory.Delete(CategoryName);

        var counterDataCollection = new CounterCreationDataCollection();

        var clearStateCounterData = new CounterCreationData()
        {
            CounterName = CounterName,
            CounterHelp = "The number of times the service state has been cleared since the last performance iteration",
            CounterType = PerformanceCounterType.CounterDelta32
        };
        counterDataCollection.Add(clearStateCounterData);

        PerformanceCounterCategory.Create(CategoryName, "Test Perf Counters", PerformanceCounterCategoryType.SingleInstance, counterDataCollection);

        var counter = new PerformanceCounter(CategoryName, CounterName, false);

        for (int i = 0; i < 5000; i++)
        {
            var sw = Stopwatch.StartNew();
            Thread.Sleep(10300);
            sw.Stop();

            counter.Increment();
        }

        Console.Read();
    }
}
于 2009-10-19T05:28:18.317 に答える
0

これはカウンターを作成するのに十分ではありません... ドキュメントによると、PerformanceCounterCategoryを作成し、 のインスタンスを作成する必要がありますPerformanceCounter。MSDN のサンプルを確認してください: http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecounter.aspx

于 2009-10-18T21:30:49.947 に答える
0

(CounterCreationData および Create in PerformanceCounterCategory を使用して) カウンターを作成し、(PerformanceCounter を使用して) カウンターのインスタンスを作成したら、パフォーマンス モニターでインスタンスを開始するためにカウンター値を初期化する必要があります。

また、(readOnly 引数に false を渡すことによって) 読み取り/書き込みモードでカウンターを作成していることを確認してください。

RawValue = RawValue または RawValue = 0 を設定して起動し、表示されるかどうかを確認してみてください。

于 2009-10-19T02:52:39.020 に答える