2010년 4월 7일 수요일

MFC::Virtual List Control

HighSpeedListCtrl_추가_개선.zip naver_photo(1).jpg

 

개발 환경
  • Tool : VS2008
  • Language : C++ (MFC)

 

Virtual List Control ??

  일반 리스트 컨트롤은 다수의 DATA를 처리하기에는 부족하다.  이럴 때 가상 리스트 컨트롤을 사용한다.

  가상 리스트 컨트롤이란 , 리스트 컨트롤 내부에서 제공해주는 자료 구조가 아닌 사용자가 직접 작성한 자료구조를 이용하여 데이터를 처리할 수 있다.

 

  리스트 컨트롤의 레이블은 256바이트를 넘을 수 없다거나, 데이터를 삽입하는 속도가 엄청 느리거나 하는 등의 문제를 해결할 때 사용한다.
    보통 삽입 속도 개션을 목적으로 주로 사용된다.

- 출처 : 까막's 블로그

 

코드 구루 vs 까막's 님 소스 비교

  일반 List Ctrl 보다는 출력이나 정렬에서는 성능이 우수하다..

  테스트 해본 결과 .. 코드 구루 소스는 List 출력은 빠르나 정렬이 오래 걸린다.

  까막's 님의 소스는 List 출력은 다소 느리나 .. 정렬이 빠르다는 장점이 있다.

  List 출력 비교  ( 100,000 )

  • 코드 구루 : 약 0.75
  • 까막's 님 : 약 3.5   - 코드 구루 소스에 비해 뿌려지는 data 양이 많음

  정렬 비교 (100,000  - 시간 측정은 못하고 체감적으로만 확인)

  • 코드 구루 : 오래 걸림
  • 까막's 님 : 0.2 ~ 0.3

 

코드 구루 + 까막's 님 

  까막's 님의 소스 수정해서 .. 처음 로딩 시간 줄였다.

  CString 사용 안하게 함.

  HighSpeedListCtrl_추가_개선.zip

 

참 고

 [1] 리스트 컨트롤 시작하기  - 까막's 블로그

 [2] 고속 추가 전용 - 리스트 컨트롤 - 까막's 블로그

 [3] MFC Virtual List Control - 코드구루

 [4] Virtual ListCtrl (가상 리스트 컨트롤) 주의 사항 - As Time goes by 블로그

 [5] Virtual ListCtrl - 새로운 아이템 설정 후 갱신 -  As Time goes by 블로그

 

이 글은 스프링노트에서 작성되었습니다.

댓글 없음:

댓글 쓰기