나는 어떤 종류의 팝업 창으로 작동하는 위젯을 만들었으므로 그림자를 주변에두고 광학적으로 배경에서 올려 놓아야합니다.임베디드 시스템에서 QGraphicsDropShadowEffect hogs cpu
이 응용 프로그램은 인텔 아톰 CPU, 사용자 정의 리눅스 배포판과 임베디드 시스템에서 실행dropshadow = new QGraphicsDropShadowEffect(this);
dropshadow->setBlurRadius(32);
dropshadow->setColor(QColor("#121212"));
dropshadow->setOffset(0,0);
setGraphicsEffect(dropshadow);
, Qt는 v4.7.3이 QWS 서버와 실행 다음과 같이 내 팝업 위젯의 생성자의 그림자 효과를 초기화 . 드롭 그림자를 비활성화하면 GUI가 유휴 상태 일 때 CPU 사용량이 10 % 미만입니다. 드롭 섀도우를 활성화하면 CPU 사용량이 80 % 이상으로 높아집니다. 앱을 프로파일 링하면 대부분의 CPU 시간이 libQtGui.so.4.7.3
내에서 소비됨을 알 수 있습니다.
GUI에서 아무 일도 일어나지 않고 마우스 움직임이 없더라도 CPU 사용량이 왜 이렇게 폭발하는지 아이디어가 있습니까?
편집 : 팝업 크기를 변경하면 CPU 사용량이 변경됩니다. 크기를 1/4로 줄이면 CPU 사용이 약 4 분의 1로 줄어 듭니다. 아주 이상한.
이상하지 않습니다. 아마도 그림자의 구현은 그림자가있는 픽셀의 양으로 증가하는 작업을합니다 :) 그리고 "유휴"는 무엇을 의미합니까? Qt/E는 항상 화면을 다시 그리거나 무언가가 다시 그리기, 메타 링크를 유발합니다. – Torp
글쎄요, Qt는 항상 임베디드 시스템에서 항상 그리지 않는 것이 현명하다고 생각합니다. 아무런 변화가 없으면, 즉 마우스 움직임이없고 보이는 위젯에는 변화가 없습니다. 그렇지 않으면 CPU 사용률이 100 %가 될 것입니다. 시간, 그렇지? – arne
팝업 안에 깜박이는 커서가 있습니까? – alexisdm