2012-04-11 3 views
3

내 WPF 프로젝트에서 창을 열면 CPU 사용량이 약 30 % -50 %이지만이 창을 최소화하면 CPU 사용량이 1 %로 감소합니다. 누군가 이유를 알고 있습니까? 감사합니다WPF로 높은 CPU 사용량

+3

이것은 정보가 충분하지 않습니다. 우리가 여기에서 추측하고 있기 때문에, 나는 당신이 애니메이션을 실행하고 있다고 생각할 것입니다; 어떤 이유로 든 또는 다른 이유로 계산하기가 어렵습니다. 나는 "로딩 인디케이터"에서의 첫 번째 시도를 기억합니다. 백그라운드에서 물건이로드되는 동안 회전하는 스피너는 전체 코어를 렌더링합니다. 나는 궁극적 인 아이러니를 위해 그것을 버렸다. – Gleno

답변

4

당신의 화면에 바인딩 (양방향)이 많습니까? 이것은 높은 CPU를 일으킬 수 있습니다. 또는 많은 애니메이션? 난 그냥, 몇 가지를 추가하려고 코멘트 때문에 대신 대답을 사용하고 RODY하여 http://msdn.microsoft.com/en-us/library/aa969767.aspx

2

좋은 게시물 :

궁극적으로이 높은 CPU 부하의 원인이 무엇 모니터링 할 WPF 성능 제품군을 사용할 수 있습니다 덧글에 최대 한도가 있습니다.

Ants Profiler를 사용하는 것이 좋습니다. 2 주간의 평가판 사용 기간이 있습니다. 무슨 일이 일어나는지 파악할만큼 충분합니다. 또한 일부 코드를 게시하면 여기 사람들이 몇 가지 사항을 신속하게 지적 할 수 있습니다.

예를 들어, Rudy가 지적했듯이 지나치게 복잡한 컨트롤과 컨트롤 템플릿은 물론 Bindings and Animations의 톤을 가지고있는 것처럼 말입니다. 스택 패널 내에서 테두리 안의 불필요한 컴포지션에 질문하십시오. 테두리 대신 ... 레이블 대신 TextBlocks를 사용하거나, 텍스트 상자가 필요한지 여부에 관계없이 읽기 전용 인 경우 TextBlocks + Border를 사용하십시오. ItemControl의 항목이 너무 복잡합니까? 등 ...

또한 개미 프로파일 러는 "좀비"개체를 표시 할 수 있습니다. 올바르게 처분하거나, 개체를 재활용하거나, 매번 새로운 복잡한 구조를 만들거나 (예 : 데이터를 표시 할 새 기간을 선택하는 경우), 다시 바인딩 할 것입니까? 데이터 그리드 셀을 가지고 있다면, 모든 사람들이 고가의 것을 필요로합니다 ... 팝업과 여분의 테두리 .. 어떤 시각적 효과를 내기 위해 모든 셀 주위에 테두리를 만들면, 하나만 가지고 다시 위치를 정하고 다시 위치 시키십시오 그것은 그리드에. 그리고 그 목록은 계속 될 수 있습니다.

짧은 이야기 - WPF는 돼지입니다. 따라서 작업을 줄이거 나 오버 헤드를 줄이고 창의력을 발휘해야 할 수도 있습니다.

P. 몇 가지 코드를 게시하는 것을 잊지 마십시오 ...

+0

와우, 개미 프로파일 링 프로파일 러는 실제로 좋은 팁입니다! 감사! –

관련 문제