1

SGEN によって生成された .XmlSerializers.dll アセンブリを最終的な実行可能ファイルに埋め込んでも、機能してパフォーマンスを向上させることはできますか?

4

1 に答える 1

0

dll自体のパフォーマンスが低下することはないと思います。dll は、AssemblyResolve で必要になるとすぐにメモリにロードされます。

その後、dll がディスク上で見つかった場合でも、exe から取得した場合でも、dll はメモリ内にあるため、パフォーマンスの違いはまったくないはずです。

このstackoverflow answer here で提供されているディレクティブに従って、プロジェクトにdllを埋め込むことができます。

パフォーマンスに関しては、ストップウォッチを使用し、要素を X 回シリアライズおよびデシリアライズするループを作成してから、2 つの方法 (ディスク上の dll を使用する方法と dll を埋め込む方法) で実行時間を測定して、確認または確認することができます。この回答の妥当性を否定します。

using System;
using System.Diagnostics;
using System.Threading;
class Program
{
static void Main(string[] args)
{
    Stopwatch stopWatch = new Stopwatch();
    stopWatch.Start();
    Thread.Sleep(10000);
    stopWatch.Stop();
    // Get the elapsed time as a TimeSpan value.
    TimeSpan ts = stopWatch.Elapsed;

    // Format and display the TimeSpan value. 
    string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
        ts.Hours, ts.Minutes, ts.Seconds,
        ts.Milliseconds / 10);
    Console.WriteLine("RunTime " + elapsedTime);
    }
}

上記のストップウォッチの例のソース: msdn

于 2015-06-21T19:04:49.590 に答える