문제

WPF를 사용하여 응용 프로그램을 개발하고 있습니다. 앱은 전체 화면을 실행하며 모니터 해상도에 관계없이 잘 크기를 조정해야합니다. 그래픽 디자이너는 UI 버튼, 배경 등에 대한 아름다운 이미지를 설계했습니다. 일러스트 레이터 플러그인을 사용하여 모든 이미지가 XAML 파일로 변환되었습니다. 이 모든 이미지를 응용 프로그램에 추가했는데 멋지게 보입니다. 나는 또한 많은 것을 사용하고 있습니다 Grid 레이아웃은 레이아웃을 유지하는 동안 화면을 크기로 조정할 수 있도록 레이아웃. 이 모든 것이 원하는대로 표시되며 다른 해상도에서 실행될 때 아무것도 늘어나지 않습니다. 그러나 화면 전환 및 UI 상호 작용은 느립니다.

나는 이것이 그래픽을 많이 사용하기 때문입니까? 너무 많이 사용하고 있습니까? Grid 레이아웃? 그러나 나는 필요하다 GridS는 해결 독립성을 가질 수 있도록.

응용 프로그램은 내 개발 기계에서 잘 작동하지만 성능 기능이 낮은 기계에서는 눈에 띄게 느려집니다. 예, 이것은 예상되지만 내가보고있는 정도는 아닙니다. 내 고용주는이 낮은 성능 기계에서 응용 프로그램이 원활하게 실행된다고 주장합니다.

나는 응용 프로그램의 프로파일 링을했는데 가장 많은 시간이 걸리는 것은 디스플레이 작업 인 것 같습니다 (프로파일 러를 얼마나 효과적으로 사용하는지 완전히 이해하지 못했지만).

WPF가 속도가 저하되는 경우 이것을 개선하기 위해 어떻게해야합니까?

도움이 되었습니까?

해결책

WPF 활동이 WPF를위한 성능 프로파일 링 도구. 그래픽 부하가 심하라고 가정하면 단순화 (예 : 레이아웃) 또는 제거 (예 : 비트 맵 효과)에 대한 도움을 줄 수 있습니다 (예 : 고전적인 Perf Killer이지만 편견을 원하지 않습니다. 당신의 프로파일 링!)).

다른 팁

둔화가 발생하는 WPF라면

아마 그렇지 않을 것입니다;)

그것은 훨씬 더 가능성이 높습니다 코드 이로 인해 둔화가 발생합니다. WPF는 강력하지만 잘 작동하기 위해 핵심 개념을 이해해야합니다. 이 비디오 PDC 세션에서 WPF 응용 프로그램을 더 빨리 만드는 방법에 대한 많은 조언을 제공합니다.

  1. 버튼의 XAML 벡터 이미지를 투명한 PNG 이미지로 변환하십시오. 경로와 모양은 렌더링, 계산 및 크기가 매우 무겁습니다. 대부분 배치 후 이미지는 변화하는 모양, 크기 또는 기타 속성의 부드러운 애니메이션을 수행하지 않는 한 이미지를 래스터보다 벡터로 만드는 것이 더 좋지 않습니다.

  2. 그리드는 캔버스, DockPanel과 비교하여 매우 비용이 많이 드는 레이아웃 관리자입니다. 특정 그리드를 Dockpanel로 교체 할 때는 확실히 생각할 수 있지만, 쉽게 수정하는 것은 아닙니다. 많은 브레인 스토밍이 필요합니다.

  3. 한 아이가있는 패널을 피하십시오. 시각적 계층 구조를 줄이십시오.

  4. 버튼과 작은 요소에 고정 된 크기를 더 많이 사용하십시오. 고정 된 크기의 어린이를 지정하면 패널이 레이아웃 처리를 쉽게 수행 할 수 있습니다.

WPF 성능은 프로세서/메모리보다 컴퓨터의 비디오 카드 품질에 크게 의존합니다. 잘못된 비디오 카드 = 잘못된 WPF 성능.

글쎄, 이것은 a입니다 장거리 슛: VSTS 2010을 설치했을 때 (그리고 WPF를 사용) 매우 충분한 CPU/메모리가있는 Windows 2008 서버에서 느리게 빠른 더 겸손한 노트에서. 우리는 하드웨어 가속을 비활성화했으며 그 기계에 눈에 띄게 빨라졌습니다.

아마도이 구성을 시도하고 싶을 수도 있습니다. 매우 간단합니다. Visual Studio 2010 Beta 2 Editor Performance 수정 가상 머신에서 실행됩니다.

일반적으로 WPF는 Windows 양식보다 성능을 도장하는 데 훨씬 악화되고 있으며 GDI 또는 DirectX가 더욱 악화됩니다.

그렇습니다. WPF는 GDI에서 지원되지 않는 깔끔한 물건을 만들 수 있지만 더 부진합니다.

당신이 할 일이 많고 느린 하드웨어에서 그것을 지원하고 싶다면 WPF는 좋은 선택이 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top