2010-08-03 3 views
1

내 현재 작업은 다양한 장치와 통신 할 수있는 측정 및 테스트 용 소프트웨어를 개발하는 것입니다. 필자는 일부 플롯 구성 요소 또는 유사한 장치에서 표시해야하는 장치에서 전송되는 많은 양의 데이터가 있다고 가정해야하므로 사용되는 UI 프레임 워크는 가능한 한 신속하고 반응 적이어야합니다..NET 용 고성능 UI 프레임

WPF에서 몇 년 동안의 경험이 있지만 성능면에서 최선의 선택이라고 생각하지 않습니다. 나는 현재 Windows Forms 사용을 고려 중입니다.하지만 먼저 몇 가지 옵션을 살펴보고 싶습니다.

.NET 용 네이티브 프레임 워크 (네이티브 프레임 워크 용 래퍼도 괜찮습니다)와 그 사용 경험은 무엇입니까? 감사!

+1

UI 프레임 워크의 속도와 데이터를 빠르게 플롯 할 수있는 방법이 확실하지 않은지 ... ...? –

+0

WPF가 그래픽 카드를 가속화하지 않습니까? 초당 몇 개의 플롯을 기대하십니까? –

+3

nCurses : – Oded

답변

4

실제로 성능 문제가 있는지 확인하려면 프로토 타입을 빌드하십시오.

WPF를 통한 Windows Forms 선택은 전적으로 가정을 기반으로하는 경우 의심스러워 보입니다.

0

WPF의 추가 정밀도와 같은 사운드는 이상적인 후보가 될 것입니다.

충분히 재미 있습니다.이 글을 타이핑 할 때 퍼포먼스에 대해 심각하게 생각하고있을 때 Radcontrols for WPF라고 쓰는 것이 좋습니다.

당신은 또한 WPF는 4.0 릴리스와 꽤 성능 향상을 가지고 있음을 염두에 두어야 :

을 위해 무엇을 찾고 될 수 있습니다.

2

그래서 초당 1.000 회의 수치가 있다고 가정 해 보겠습니다. 초당 1000 번 디스플레이를 새로 고쳐야한다고 생각하십니까?

이러한 표시는 의미가 없습니다. 화면에 너무 많은 깜박임이있을 것입니다. 텍스트 데이터를 표시하면 너무 빠르게 스크롤되거나 깜박 거리고 읽을 수 없습니다.

영화는 초당 24 프레임을 표시합니다. 그보다 빠른 속도는 인간의 눈과 관련이 없습니다. 초당 변경 사항이 더 많이 표시되면 무엇을 얻을 수 있습니까? 인간은 그렇게 빨리 반응 할 수 없다. 따라서 초당 여러 번 시스템 조정이 필요한 경우 일부 자동 시스템이 있어야합니다.

일반적으로 UI로 수행하고자하는 목표를 재고해야합니다.
Google에서 "대시 보드 디자인"을 검색하십시오.

저는 첨단 기술이 펜티엄 II였던 12-13 년 전에 우물 (펌프 및 밸브)을 제어하는 ​​시스템에서 일했습니다. 우리는 Delphi 2와 Windows NT를 사용하여 시스템을 그래픽으로 표현했습니다. 성능 문제는 우리가 데이터를 읽는 데 사용한 직렬 인터페이스입니다. 디스플레이가 그보다 훨씬 빠릅니다.

0

VB6 UI가 있기 때문에 닷넷 양식이 효과가 있다고 생각합니다.

선 그래프를 화면에 표시하는 유사한 응용 프로그램을 개발했지만 VB6에 있었고 동시에 txt 파일에 데이터를 기록합니다. 초당 700+ 읽기 (아날로그 - 디지털 신호 변환)가 있습니다.

타사 컨트롤을 사용하지 않고 코딩하여 데이터를 플로팅해야 할 수도 있습니다.

희망이 있으면 도움이 될 것입니다.

0

XNA 또는 다른 3D API를 사용하여 그래픽을 그릴 수 있지만 과도 할 수 있습니다.

1

많은 비즈니스 라인 차트가 과학 또는 금융 응용 프로그램에서 요구되는 대규모 데이터 세트를 렌더링 할 수없는 일반적인 문제입니다. 이는 WPF 및 Silverlight와 같은 유지 모드 렌더링 엔진에서 특히 분명합니다. 대부분의 GUI 기술에 적용되지만 화면을 빠르게 업데이트해야하는 경우 속도가 매우 느릴 수 있습니다.

이 요구에 대한 응답으로 SciChart이라는 고성능 WPF/SL 차트 구성 요소를 만들었습니다. SciChart는 초 고성능 과학/주식 차트의 격차를 보완하기 위해 독점적 리샘플링 알고리즘을 사용하여 드로잉, 직접 모드 렌더링 및 개체 풀링 및 리소스 재사용과 같은 다양한 최적화 작업을 수행하기 전에 독점적 리샘플링 알고리즘을 사용하여 데이터 집합을 줄입니다. .

성능 데모를 보려면 SciChart link을 클릭하십시오 (Silverlight 4 - WPF 버전도 필요함). 이 차트는 상호 작용하는 프레임 속도 (하드웨어에 따라 20-50FPS)에서 5 또는 6 자의 포인트 수를 합산 한 여러 시리즈를 그릴 수 있습니다. 이는 초당 약 2 백만 개의 데이터 포인트 (20,000 개의 데이터 포인트에서 100,000 개의 데이터 포인트)와 동일합니다. 상용 라이센스 준비가 완료된 정식 버전은 2012 년 1 월 말 곧 제공 될 예정입니다.

특정 요구 사항에 따라 WPF/SL 렌더링 파이프 라인은 최대 60FPS로 렌더링됩니다 모니터 재생 빈도 이 경우 데이터를 일괄 처리하고 CompositionTarget.Rendering 이벤트의 차트에 추가하는 것이 가장 좋은 방법이 될 것이라고 제안합니다. SciChart는 코드 숨김 또는 MVVM과 호환되는 API를 통해 마지막에 한 번의 렌더링으로 일괄 업데이트를 지원합니다. 결과적으로 차트에 원하는만큼 빠르게 데이터를 푸시 할 수 있지만 WPF/SL이 렌더링 할 수있는 속도로 렌더링됩니다. 30FPS 이상은 인간의 눈으로 사실상 감지 할 수 없습니다.

또 다른 고려 사항은 메모리 풋 프린트와 CPU 및 속도입니다. WPF/SL은 주요 메모리 돼지가 될 수 있으므로 차트 구성 요소를 평가할 때는 신중하게 선택합니다!