ようこそ。睡眠不足なプログラマのチラ裏です。

.NET Compact Framework2.0にSystem.Diagnostics.Stopwatchクラスがない件

なにかしらの負荷によって時間がかかっている処理があって、
その中でも最も負荷がかかっている箇所がどこなのかを特定するために、
各処理フェーズごとに時間を計測してログに吐き出すことにした。


おもむろに.NET Framework2.0から追加されたSystem.Diagnostics.Stopwatchクラスに手を伸ばす・・・。
しかし、.NET Compact Framework2.0では、System.Diagnostics.Stopwatchクラスがサポートされていない件。*1


/(^o^)\ナンテコッタイ


これは何かのいやがらせでしょうか。しかたがないので、
System.Environment.TickCountで取得できるWindows起動時間を利用し、
開始時間と終了時間の差分(ミリ秒単位)から、
分秒単ににコンバートしてログを出力できるようにした。泣く泣くそうした。
PDAのデフォルトメモ帳は、文字エンコードがShift-JISじゃないと文字化けするから気をつけよう。


ちなみにDiagnostics(ダイアグノスティクス)は、「診断学」という意味らしいよ。
わかりずれー名前空間だなおい。

                                                                        • -

追記:
System.Environment.TickCountなんてまどろっこしいことせずに・・、

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime d1 = DateTime.Now;
            Console.Write(d1.ToLongTimeString());
            Console.Read();

            DateTime d2 = DateTime.Now;
            Console.WriteLine(d2.ToLongTimeString());

            Console.WriteLine("差:" + d2.Subtract(d1).TotalSeconds.ToString() + "秒");
            Console.Read();
            Console.Read();
        }
    }
}


DateTime構造体のメンバのSubtractメソッド使えばいいじゃんってゆー
いろいろ疲れてたんでしょう(^ω^;)

*1:System.Windows.Forms.Timerクラスはあるものの、StartメソッドやらStopメソッドやらResetメソッドが見当たらんわけだが。使えんのかこれ。