MFC 기반 실시간 처리 프로그램 속도 고민 (WPF/Winform)

안녕하세요, 처음 글 올려봅니다.

기존에 MFC로 개발된 프로그램을 WPF 또는 Winform으로 재개발하려고합니다.
다만 고민중인게 실시간 처리 부분의 속도인데요, 현재 최대 초당 100만건의 정보가 실시간으로 들어옵니다. 이걸 현재 MFC로 개발된 화면에 무리없이 보여주고 있습니다.

하지만 C#이 C++보다 느릴 수 밖에 없다고 생각이 들어서, 만약 이걸 WPF 또는 Winform으로 마이그레이션을 할 시 버틸 수 있을지 궁금합니다.

여러가지 알아본 결과 Winform이 WPF보다 이런 점에서 속도가 빠르고, 코어 부분은 C++/CLI로 개발해서 Winform과 연동하는 방안이 제일 가능성 있어보이는데, 혹시 기존에 저와 비슷한 상황을 해결하신분이 계신지 어떻게 해결하셨는지 또는 다른 의견이 있으신지 궁금합니다.

MFC에서 탈출하고 싶습니다…

매초마다 새로운 100만건의 정보를 한화면에 반드시 모두 표시해줘야한다면 그냥 냅두는게 맞는거같고, 제생각에는 그게 의미가 있나 잘 모르겠습니다. 언어나 프레임웍 이전에 요구사항자체를 리팩토링할 필요가 있지않을까요

다른 것 보다 GC가 문제 될 것 같습니다.
초당 100만건 메모리풀을 GC로 잘 처리하면 GUI쪽은 구현하기 나름이라…
데이터 처리와 GUI 결합도가 높으면 힘들겠지만 제대로 설계했다면 문제가 없어야 합니다.

1개의 좋아요

반드시 표시해줘야하는건 아니지만 부하 테스트를 그렇게 진행합니다.
mdi로 되어있어서 사용자가 창을 여러개 띄우면 그만큼 배수로 데이터가 전송됩니다.
좀 특수한 HTS라서 필터링이 없어 사용자가 종목을 10~20개정도 동시에 본다고하면 초당 100만건정도 나옵니다.

아하 GC쪽이 문제가 될 수 있겠군요…

예전에 기계에서 실시간으로 받는 로그를 출력하는 MFC를 윈폼으로 바꾸려고해봤는데 시리얼포트를 통해 받는건 문제없었는데, 화면에 출력할때 UI가 따라주지 못해서 지연되는 문제로 못바꾼 경험이 있습니다.
즉, 단순 내부 로직이면 상관없지만 WINFORM UI로 출력해야되는거면 불가능할겁니다.

초당 백만건은 아니었고 초당 만건 정도 문제를
concurrentqueue c# 으로 해결해서 리얼타임 그래프를 그린적이 있습니다.
어차피 들어오는 데이타는 que 쌓이고 시스템 리소스에 따라 계속 빼서 그리는 방식으로요

1개의 좋아요

SharpDX로 그려보심이 어떠한지…?