신호성 12월 7일, 2022에 포스트됨 공유하기 12월 7일, 2022에 포스트됨 Delphi 11로 마이그레이션했습니다. 고해상도 모니터를 인식하고 화면을 처리하도록 보완했습니다. 4K모니터에서 모니터 배율을 지정해 PPI를 높여도 폰트와 아이콘이 선명하게 표시되 만족하고 있습니다. 문제는 화면 오픈 속도가 현저하게 느려졌습니다. 많은 Frame을 동적으로 생성하고 배치하는 구조인데 동적 생성 후 Parent를 지정해 화면에 배치할 때 성능 차이가 10배 정도 느려집니다. (특정 화면 Parent 설정 소요시간 예시) * DPI Awarensess None 설정 : 0.067초 * DPI Awarensess Per Monitor v2 설정 : 0.699초 화면 구성이 복잡할수록 속도는 느려져 어떤 화면은 오픈에 3초 이상 시간이 소요되는 경우도 발생합니다. 속도가 느려졌다는 의견이 많아 방법을 찾아보고 있는데 찾을 수 없습니다. 성능을 개선할 방법이 있는지 문의합니다. 특별한 방법이 없다면 엠바카데로에 의견을 보내셔서 성능 개선을 꼭 건의해야 할 것 같습니다. 추가적으로 구성이 복잡한 화면을 일반 96ppi 모니터와 높은 ppi 모니터로 이동할 때 화면 멈춤 시간도 많이 느려집니다. 꼭 해결책이 나왔으면 좋겠습니다. 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
0 c2design 12월 13일, 2022에 포스트됨 공유하기 12월 13일, 2022에 포스트됨 혹시 말씀 하신 현상을 동영상 캡쳐가 가능 하시다면 아래 링크를 참고하시여 올려 주시면 다음 버전 성능 개선에 우선순위로 반영이 됩니다. 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
0 c2design 12월 14일, 2022에 포스트됨 공유하기 12월 14일, 2022에 포스트됨 가능하시면 테스트 해 볼 수 있는 샘플 소스를 퀄리티 포털에 올려 주시면 문제 해결에 좀더 도움이 될 것 같습니다. 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
0 신호성 12월 29일, 2022에 포스트됨 Author 공유하기 12월 29일, 2022에 포스트됨 저희 환경에서 다양하게 앱을 보완하고 테스트한 후 제가 유추한 결과입니다. 모든 폼의 오픈 속도가 느려졌는데 특별히 내용이 복잡한 화면에서는 체감하는 속도가 많이 느립니다. 저희 앱에 사용자가 DIP 인식 방법을 설정을 할 수 있도록 환경 설정 기능을 추가해서 설정 후 앱을 재실행하면 아래 4가지 설정으로 동작하도록 기능을 개발했습니다. DPI_AWARENESS_CONTEXT_SYSTEM_AWARE DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 DPI_AWARENESS_CONTEXT_UNAWARE 프로젝트 소스의 Application.Initialize; 전에 SetProcessDpiAwarenessContext() 함수를 이용해 설정했습니다. Windows10 고해상도 모니터에서 디스플레이 배율을 125% 이상 지정한 상태에서 DPI를 인식하지 않도록 설정한 경우와 인식하지 않도록 설정한 경우 특정 폼의 생성에만 2배 이상 시간이 소요되는 것은 로그 기록을 통해 확인했습니다. 같은 앱을 Windows7 에서 실행하면 Window10보다 월등히(몇 배) 빠르게 동작합니다. 또한 PER_MONITOR_AWARE_V2 설정은 DPI가 다른 모니터로 폼을 이동할 때 너무 렉이 걸려 앱의 디폴트 값은 주 모니터의 DPI를 인식하는 CONTEXT_SYSTEM_AWARE로 설정했으며 이 경우 DPI가 다른 모니터로 폼을 이동할 때 화질은 떨어지지만 훨씬 빠르게 동작했습니다. Windows10 에서 highDPI 지원하면서 Form Create 과정에 VCL Coltrol의 크기 조정 등 복잡한 사전 처리로 느려졌다고 생각됩니다. 간단한 앱이 아니라 샘플을 드릴 순 없지만 설치 앱은 드릴 수 있습니다. nops@goodapp.co.kr로 메일 주시면 앱 설치 관련한 자세한 사항을 보내드리겠습니다. 제가 얻은 결론은 "HighDPI를 지원하면서 VCL을 활용하는 Form의 create의 성능이 상당히 느려졌다" 입니다. Winodw7에서 빠른 것은 highDPI를 지원하지 않기 때문이라 생각됩니다. 제가 찾지 못한 다른 방법이나 대안이 있는지 엠바카데로에 관련 사항을 문의해 주시고 느려진 것이 사실이라면 개선이 필요할 것 같습니다. 감사합니다. 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
질문
신호성
Delphi 11로 마이그레이션했습니다.
고해상도 모니터를 인식하고 화면을 처리하도록 보완했습니다.
4K모니터에서 모니터 배율을 지정해 PPI를 높여도
폰트와 아이콘이 선명하게 표시되 만족하고 있습니다.
문제는 화면 오픈 속도가 현저하게 느려졌습니다.
많은 Frame을 동적으로 생성하고 배치하는 구조인데
동적 생성 후 Parent를 지정해 화면에 배치할 때 성능 차이가 10배 정도 느려집니다.
(특정 화면 Parent 설정 소요시간 예시)
* DPI Awarensess None 설정 : 0.067초
* DPI Awarensess Per Monitor v2 설정 : 0.699초
화면 구성이 복잡할수록 속도는 느려져
어떤 화면은 오픈에 3초 이상 시간이 소요되는 경우도 발생합니다.
속도가 느려졌다는 의견이 많아 방법을 찾아보고 있는데 찾을 수 없습니다.
성능을 개선할 방법이 있는지 문의합니다.
특별한 방법이 없다면 엠바카데로에 의견을 보내셔서 성능 개선을 꼭 건의해야 할 것 같습니다.
추가적으로 구성이 복잡한 화면을
일반 96ppi 모니터와 높은 ppi 모니터로 이동할 때
화면 멈춤 시간도 많이 느려집니다.
꼭 해결책이 나왔으면 좋겠습니다.
이 댓글 링크
다른 사이트에 공유하기
3 answers to this question
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.