1

最近、ファイル形式の書き込みライブラリを書き直しました。私は自分のコードが乱雑で、すべてが非常に複雑になり、一般的に保守を維持するのが難しいことに気づきました。

ですから、私の新しいライブラリはもっと​​整理されていてきれいです。古いライブラリでタスクを実行する方法の多くは、必要以上に複雑であることに気づきました。そのため、新しいコードの方がはるかに高速であると期待していました。

まあ、正確ではありません。最初に、.NetフレームワークのStopwatchクラスを使用してパフォーマンスをテストしました。私の古いライブラリは一貫して高速でしたが、数え切れないほどの改善と最適化があったため、私はショックを受けました。

次に、dotTracePerformanceProfilerを使用して両方をテストしました。予想通り、私の新しいライブラリはより高速でした-約2高速でした!私の古いライブラリは62ミリ秒で、新しいライブラリは28ミリ秒でした。

だから私は何が起こっているのかわかりません。Visual Studioでは、新しいライブラリの速度が大幅に低下します。実際、非常に一貫性がなく、00 :: 00::00.042から00::00::00.351の範囲になります。

なぜこれが起こっているのか誰かが知っていますか?dotTraceは2倍速いと言っており、Stopwatchは2〜4倍遅いと言っています。

皆様のご協力に感謝いたします。

  • アレックス

編集:

コードは両方のライブラリで同じであり、どちらも新しいライブラリと古いライブラリを参照するだけです。これは、コンソールアプリケーションでテストされました。

class Program {
    static void Main(string[] args) {
        Stopwatch sw = new Stopwatch();
        sw.Start();

        Textstring txt = new Textstring("TestText");
        txt.Text = "This is a test textstring.";
        RdwFile f = new RdwFile("Test");
        f.Add(txt);
        f.Save();

        sw.Stop();

        Console.WriteLine(sw.Elapsed.ToString());

        Console.ReadKey();
    }
};
4

0 に答える 0