XP 시각적 테마 / 시각적 스타일을 활성화하면 성능이 사라집니다

StackOverflow https://stackoverflow.com/questions/1849960

  •  13-09-2019
  •  | 
  •  

문제

오래된 C ++ Builder / Delphi 애플리케이션의 모양을 현대화하려고 노력하면서 시각적 테마를 활성화했습니다.시각적 스타일) 그리고 성능이 얼마나 많은 테마가 추가 된 지에 놀랐습니다. 예를 들어, 기본 설정 페이지 (개발 시간 및 재교육 비용으로 인해 지금 바로 다시 만들고 싶지 않은 11-TAB, 200 통제 괴물 대화 상자)의 경우 :

  • 테마가 활성화되지 않으면 : ~ 0.1 초 양식과 그 컨트롤을 구성하기 위해 (QueryPerformanCecounter로 측정), ~ 0.9 초 메뉴 항목을 클릭하여 표시되는 양식으로 (스톱워치로 측정). 최종 사용자에게는 눈에 띄지 않습니다.
  • 테마를 활성화하여 : ~ 0.6 초 양식과 그 컨트롤을 구성하려면 ~ 1.5 초 메뉴 항목을 클릭하는 것부터 표시되는 양식까지. 최종 사용자에게 매우 눈에.니다.

Windows XP 데스크탑과 Windows 7 VM에서 비슷한 결과를 얻습니다.

이 특정 사례를 개선하기 위해 취할 수있는 단계가 있다는 것을 알고 있지만 (예 : 대화 상자의 탭을 게으르게로드하거나 완전히 재 설계하는 등) 테마가 눈에 띄는 성능을 추가하는 것이 일반적입니까? 이 성능을 피하기위한 쉬운 제안이 있습니까?

도움이 되었습니까?

해결책

우와. 나는 단일 형태로 200 개의 컨트롤을 가지고 있지 않은지 확신하지 못한다. 다음은 몇 가지 제안이 있습니다.

  • 응용 프로그램이 시작될 때 한 번 대화를하고 필요에 따라 필요할 때 표시 할 때 대화 상자를 작성하려는 특별한 경우 일 수 있습니다.

  • 또한 생성자 또는 온쇼 이벤트에서 무슨 일이 일어나고 있는지 살펴 보겠습니다. 시작/endupdate가 유리한 목록을 채우고 있습니까?

  • Onresize 이벤트 또는 이와 유사한 코드가 있습니까? 양식이 만들어지고 한 번 실행 될 때까지 기다릴 수있는 두 번 이상 발사 될 수 있습니까?

  • 어떤 종류의 컨트롤을 사용하고 있습니까? 한 가지 유형의 제어 페인트가 특히 느리게 페인트를 칠하면 더 빨리 페인트하는 것으로 교체 할 수 있습니다. 그러나 약간의 테스트가 필요합니다.

다른 팁

당신은 컨트롤을 두 배로 늘릴 수 있었고, 우리는 동일한 동작을 크게 가지고 있었고,이 접근법에 의해 다소 속도가 높았지만 응용 프로그램 테마 지원을 채택하기 전에 성능에 접근하지 못했습니다.

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