이번 건은 내가 바보짓을 한 경우인데, 혹시라도 나같은 사람이 또 있을까? 싶어서 기록합니다.
WPF 프로그래밍을 하다보면 ObservableCollection을 사용하는 경우가 많고, View와 Viewmodel의 바인딩에 편리하게 사용합니다.
그런데, 클래스에 프로퍼티를 만들때도 Collection이 필요하면 습관적으로 ObservableCollection으로 만들었죠.
아무일도 없었습니다.
그런데 성능문제가 있어서 검토하다가 발견한게...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ObservableCollection< string > OCollection = new ObservableCollection< string >(); List< string > ListText = new List< string >(); private void Button_Click( object sender, RoutedEventArgs e) { for ( int i = 0; i < 1000000; i++) { OCollection.Add(i.ToString()); } for ( int i = 0; i < 1000000; i++) { ListText.Add(i.ToString()); } }</ string ></ string ></ string ></ string > |
ObservableCollection과 List에 1000000개의 아이템을 넣어봤더니, 속도가 2배정도 차이가 납니다.
필요없는곳에 ObservableCollection을 남발하지 맙시다 ㅜㅜ