2016-10-03 1 views
0

릴리스 모드에서 빌드하고 실행하면 내 앱이 30FPS에서 실행됩니다. 디버그 모드에서 빌드하고 실행하면 5FPS로 실행되고 시작하는 데 약 20 초가 소요됩니다.QML 프로파일 러 (디버그 모드에서 빌드가 필요함)는 디버그 모드가 내 앱 6x를 느리게하는 경우 릴리스 모드 병목 현상을 식별하는 데 도움이됩니까?

QML 프로파일 러에서 필요로하는 디버그 모드의 속도가 느려지므로 병목 현상이 릴리스 모드에서 볼 수 있습니까? 앱을 릴리스 모드로 거의 독점적으로 실행한다는 점에 유의하십시오. 그렇지 않으면 너무 느립니다.

+0

무의미한 논리는 릴리스 런타임의 병목 현상이 디버그 모드보다 6 배 작지만 여전히 병목 현상이 있음을 나타냅니다. 당연히 현실은 그렇게 간단하지 않고 달려 있지만 최소한 ** 표시를 제공합니다 **. 그리고 예, 디버그 릴리스를 프로파일 링하는 것은 어리석은 것입니다. – dtech

+0

@ddriver : 순진한 논리의 문제는 바로 그 것입니다. 최적화가 모든 것을 Nx로 빠르게 만들지는 못합니다. 호출 스택의 맨 아래까지만 속도를 올리며, 라이브러리 코드에없는 경우에만 호출 스택의 속도를 높입니다. 스택 위로 올라간다면 아무 것도 없지만 대부분의 병목 현상은 옵티마이 저가 수정할 수없는 것입니다. 그것을 찾기가 더 어려워 질뿐입니다. –

+0

BTW, QML의 문제는 지난 30 년간 [* 차동 실행 *] (https://www.youtube.com/channel/UCGwyNGICQ4RHmcYcQIG9gxw)을 사용하여 해결했습니다. –

답변

0

제 경험상 1) 컴파일러의 최적화 프로그램에서 할 수없는 수정 사항과 2) 최적화 프로그램으로 해결할 수없는 수정 사항이 있습니다.

전 (예 : new 과잉 통화, memoizing 필요로하는 기능, I/O를 필요하지 않은 않는 시스템 호출, 등 등) 더 이상 분명 최적화 된 코드를 프로파일 링에 의해 만들어진되지 않습니다 . 실제로 최적화 프로그램을 사용하면 찾기가 더 어려워집니다.

디버그 모드 코드가 너무 느린 이유를 알아 내려고 노력합니다. 이 목적을 위해 프로파일 러를 사용하지 않습니다. 대신 this technique을 사용합니다. 그것은 비참한 측정 방법입니다. 속도 향상을 찾을 수있는 좋은 방법입니다.

다음 릴리스 모드로 이동하면 30 FPS보다 나은 것을 알 수 있습니다.

관련 문제