2016年12月28日水曜日

【C#】ReadOnlyCollection<string>の速度

①List<string>速度測定用ソースコード
var list = Enumerable.Repeat("abcdef", 100 * 1000 * 1000).ToList();
var sw = new Stopwatch();
sw.Start();
var sum = string.Join(",", list);
sw.Stop();
Console.WriteLine("time=" + sw.Elapsed);

①の結果(実行時間)
 1回目:15.3343278秒
 2回目:12.7513260秒

②ReadOnlyCollection<string>速度測定用ソースコード
var list = Enumerable.Repeat("abcdef", 100 * 1000 * 1000).ToList();
var readList = new ReadOnlyCollection<string>(list.ToList());
var sw = new Stopwatch();
sw.Start();
var sum = string.Join(",", readList);
sw.Stop();
Console.WriteLine("time=" + sw.Elapsed);

②の結果(実行時間)
 1回目:13.8123513秒
 2回目:13.2021955秒


◆環境
  • 速度確認した仮想マシン
    • CPU core数:4
    • メモリ:4GB
    • OS:Windows10 Pro x64
    • 仮想マシン:VMWare vShpere ESXi6.5
    • Visual Studio 2015
    • 構成:Releaseでビルド
    • デバッグ情報(ビルドの詳細設定):none
    • Visual Studio ホスティングプロセス:無効

  • ホストPCの性能(参考)
    • CPU:Intel Core i5-4250U(2Core 2HT)
    • メモリ:16GB
    • ドライブ:SSD(ウルトラ II mSATA SSD SDMSATA-512G-G25C)
    • 仮想マシン:VMWare ESXi6.5上の仮想マシン

0 件のコメント:

コメントを投稿