ListとLinkedListの比較

[完全版] 究極のC#プログラミング ~新スタイルによる実践的コーディング のlist2.3をやってみました。

ListとLinkedListのそれぞれで1000回リンクに挿入するのを10回行うコードです。

image

1つめがList、2つめがLinkedListです。LinledList、確かに速い。

環境は、CoreDuo 1.2GHz、Memory2GB、Vista SP2。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace list2._3
{
    class Program
    {
        static void Main(string[] args)
        {
            int loop1 = 100;
            int loop2 = 10000;

            // Listクラスの利用
            DateTime start1 = DateTime.Now;
            for (int counter1 = 0; counter1 < loop1; counter1++)
            {
                var list1 = new List<string>();
                list1.Add("First");
                list1.Add("Last");
                for (int counter2 = 0; counter2 < loop2; counter2++)
                {
                    list1.Insert(1, "Inserted");
                }
            }
            var end1 = DateTime.Now;
            Console.WriteLine(end1 - start1);

            // LinkedListクラスの利用
            var start2 = DateTime.Now;
            for (int counter3 = 0; counter3 < loop1; counter3++)
            {
                var list2 = new LinkedList<string>();
                list2.AddFirst("First");
                list2.AddLast("Last");
                for (int counter4 = 4; counter4 < loop2; counter4++)
                {
                    list2.AddAfter(list2.First, "Inserted");
                }
            }
            var end2 = DateTime.Now;
            Console.WriteLine(end2 - start2);
        }
    }
}

実現している機能がことなるので、単純比較はできないけれども。

Posted in C#

コメントを残す