본문 바로가기

Language/C#

Collection의 성능문제 / Generic Collection

C# Collection의 경우 type을 object type으로 저장하기 때문에 

하나의 collection안에 다양한(int, bool, string) type들을 보관할 수 있다.

하지만 이것이 성능상 단점을 유발하게된다.


Collection은 data를 받으면 어떤 형식이든지 object type으로 Boxing되어 저장되고

data에 접근하여 사용할때는 원래의 data type으로 UnBoxing하게되는데


알다싶이 Boxing, UnBoxing하는것은 비용이 들게 되고 따라서 data가 많아지고 data의 입출력이 잦아질 경우

Boxing, UnBoxing의 횟수가 늘어나 성능저하가 발생하게 된다.


이러한 문제때문에 Generic Collection을 사용한다.



using System.Collections;

C# Collection은 ArrayList, Queue, Stack, HashTable등이 있다.


using System.Collection.Generic;

C# Generic Collection은 List<T>, Queue<T>, Stack<T>, Dictionary<T>가 있다.


P.S) Dictionary는 C++의 map과 같다.

'Language > C#' 카테고리의 다른 글

Generalization  (0) 2019.03.06
Boxing / UnBoxing  (0) 2019.03.06
C# 제네릭  (0) 2019.03.06
GC를 유발하는 몇가지 Case  (0) 2019.03.05
Mono / Nuget / .NET Framework / .NET Core / Xamarin / Manifest  (0) 2019.02.27