2011-01-18 4 views
1

TextBlock에 약 100.000 자의 Html 코드 문자열을로드하는 아주 간단한 프로그램을 만들려고했습니다.WPF가 일반적인 Windows Forms보다 느리거나 100 배 이상 빠릅니다.

텍스트 블록 자체는 ScrollViewer에

<ScrollViewer Margin="0,75,0,0"> 
    <TextBlock Name="textBlock1"></TextBlock> 

</ScrollViewer> 

나는 창문에서 동일한 형성 한 TextBox 컨트롤입니다.

문서를 스크롤하려고하면 CPU가 50 % (듀얼 코어, 그래서 코어 당 100 %)로 실행되는 동안 약 0.25 초 뒤쳐지고 더 많은 메모리 (170 메가 비트 이상)가 사용됩니다. .

Windows Form 응용 프로그램의 텍스트를 스크롤 할 때 프로세서 사용량을 15 % 미만으로 유지하면서 15MB로 일정하게 유지됩니다.

정상입니까 아니면이를 개선하기 위해 어떤 조치를 취할 수 있습니까?

답변

4

대신 읽기 전용 TextBox를 사용하면 TextBlock보다 훨씬 더 나은 성능을 보입니다.

+0

여기서 TextBox의 성능이 개선되는 이유는 무엇입니까? – Justin

+1

@Justin TextBox의 성능이 정확한 이유를 잘 모르겠다. 내 답변은 테스트에서 파생되었습니다. TextBox는 렌더 할 수있는 것, 평범한 텍스트라는 점에서 복잡하지 않으므로 TextBox가 빠르다 고 가정합니다. TextBlock은 다양한 색상, 글꼴, 크기 및 텍스트 장식으로 블록 \ 런을 렌더링 할 수 있습니다. –

관련 문제