! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

[FlexGrid Winforms] 가상 모드와 일반 모드 성능 비교 > 지식 쉐어링

본문 바로가기

ComponentOne

지식 쉐어링

샘플공유 [FlexGrid Winforms] 가상 모드와 일반 모드 성능 비교

페이지 정보

작성자 GCK싸이먼 작성일 2023-10-27 18:37 조회 104회 댓글 0건

본문

첨부파일

데이터 가상화란 데이터를 한 번에 모든 데이터를 로드하는 대신 원격 소스에서 데이터를 점진적으로 로드하는 방식을 의미합니다.

일반 모드에서는 모든 데이터를 그리드에 로드하는 반면, 가상 모드에서는 사용자가 그리드를 스크롤할 때마다 필요한 데이터가 호출되는 방식입니다. 따라서 가상 모드에서는 대량의 데이터를 다룰 때 짧은 시간 내에 효율적으로 그리드에 데이터를 로드할 수 있습니다.


FlexGrid에 100만 개의 데이터를 사용하여 로드 시간을 가상 모드와 일반 모드를 Stopwatch로 측정한 데이터입니다.

(100만개의 데이터 기준 / Machine Spec에 따라 변동될 수 있음)

 

초기 로드

마지막 행 이동

가상모드

0 362밀리초

0 7밀리초

일반모드

6 116밀리초

0 6밀리초

 
가상 모드로 데이터를 바인딩 하는 방법은 첨부드리는 샘플 프로젝트와 아래의 샘플 코드를 참고해주시기 바랍니다.

우선 데이터에 따라 C1VirtualDataCollection 인터페이스를 구현하여 데이터에 맞게 GetPageAsync 메서드를 재정의 합니다.
public class VirtualModeCollectionView : C1VirtualDataCollection<Customer>
{
    public int TotalCount { get; set; } = 1_000;

    protected override async Task<Tuple<int, IReadOnlyList<Customer>>> GetPageAsync(int pageIndex, int startingIndex, int count, IReadOnlyList<SortDescription> sortDescriptions = null, FilterExpression filterExpression = null, CancellationToken cancellationToken = default(CancellationToken))
    {
        await Task.Delay(500, cancellationToken);//Simulates network traffic.
        return new Tuple<int, IReadOnlyList<Customer>>(TotalCount, Enumerable.Range(startingIndex, count).Select(i => new Customer(i)).ToList());
    }
}
 
이후, VirtualModeCollectionView의 인스턴스를 전달하여 C1DataCollectionBindingList 객체를 만들고 이를 그리드의 DataSource 속성에 할당하십시오.
private void Form1_Load(object sender, EventArgs e)
{
    var collectionView = new VirtualModeCollectionView();
    c1FlexGrid1.DataSource = new C1DataCollectionBindingList(collectionView);
    c1FlexGrid1.Visible = true;
}

그러면 FlexGrid에 데이터 가상화를 적용하고 가상 데이터 컬렉션으로 채우실 수 있으실 겁니다.

추가로 궁금하신 사항은 Q&A 게시판에 문의를 남겨주시면 확인하여 안내드리겠습니다.
감사합니다.
그레이프시티 드림.

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.