C# 객체 생성 성능

파이프로 분리된 4개의 컬럼, 18만라인을 읽어서 List에 넣었더니... 한참걸린다.
아래를 객체생성 루프이다.
GC가 일어날때를 제외하고는 struct이 훨씬 빠르다.(물론 Object의 장점은 모두 없어진다.)

class Program
    {
        class MyObject
        {
            public string Col1 { set; get; }
            public string Col2 { set; get; }
            public string Col3 { set; get; }
            public string Col4 { set; get; }
        }
        struct MyStruct
        {
            public string Col1;
            public string Col2;
            public string Col3;
            public string Col4;

        }
        static void Main(string[] args)
        {
            {
                ArrayList mylist = new ArrayList();

                DateTime p = DateTime.Now;
                for (int i = 0; i < 2000000; i++)
                {
                    MyObject m = new MyObject();
                    m.Col1 = "1";
                    m.Col2 = "2";
                    m.Col3 = "3";
                    m.Col4 = "4";
                    mylist.Add(m);
                }
                TimeSpan diff = DateTime.Now - p;
                Console.WriteLine("걸린시간 : " + diff.Milliseconds);
            }

            {

                ArrayList mylist = new ArrayList();

                DateTime p = DateTime.Now;
                for (int i = 0; i < 2000000; i++)
                {
                    MyStruct m = new MyStruct();
                    m.Col1 = "1";
                    m.Col2 = "2";
                    m.Col3 = "3";
                    m.Col4 = "4";

                    mylist.Add(m);
                }
                TimeSpan diff = DateTime.Now - p;
                Console.WriteLine("걸린시간 : " + diff.Milliseconds);

            }
        }
    }

하지만, 생각했던 성능이 안나와서 텍스트를 라인별로 string 객체 ArrayList로 만들어 검색할때, 해당 구문이 있으면 객체로 만들어 리턴하게 했다.

댓글

이 블로그의 인기 게시물

C#에서 포인터 사용

WPF RichTextBox 와 Document의 바인딩

WPF 이미지위에 라인 그리기(WPF DrawLine on exist Image)