Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 0
5 Ways to improve the performance of QML Applications
on low-cost Automotive devices
이상만
2015.11.03
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 1
Contents
I. Presenter
II. Background
III. Issues and Analysis
IV. 5 Ways to improve the performance1. Dynamic creation and loading2. Divided business logic3. Use the image provider4. Try AOT & Static build5. fontconfig
V. Thank you
Contents
Always in your life
Presenter
2
OCUBE- www.ocube.co.kr
Qt Developer - qtocube.co.kr
Qt Developer days 2010 in seoul
Embedded, AVN & IVI 개발 경험
Always in your life
Background
3
• Embedded 개발 환경
• Automotive : Machinery
• Mobile vs Automotive
• Trend & Business
• 그럼에도 불구하고 …
: still low-cost
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 4
Issues and Analysis (1/2)
• Performance issues happened on Vehicle
: Various GUI Transition & Rendering Effect from vendors on the low-cost hardware
: Change screen happens too slowly
: Response time – flicking, seeking, searching…
: Overall slowly
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 5
Issues and Analysis (2/2)
• Using QML profiling from QtCreator: Available remote profiling
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 6
5 Ways to improve the performance (1/5)
• Dynamic creation and loading: booting time 성능 개선: Run time 중 Component 생성 관리: Loader를 통해, Component Loading
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 7
5 Ways to improve the performance (2/5)
• Divided business logic: Data processing은 기본적으로 C++에서 처리: QML은 display data, GUI Effect 담당: C++ / QML 간 다양한 interface 충분히 활용
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 8
5 Ways to improve the performance (3/5)
• Use the image provider: QQuickImageProvider의 기능?: QQuickImageProvider Overriding 기능 확장: Qpixmap, QPainter을 통한 Image Composing
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 9
5 Ways to improve the performance (4/5)
• Try AOT if available: QML Engine은 Interpreter parsing(Run time): QML script를 native binary code로 conversion
(Compile time)
• 20 ~ 30% performance improvement
• License & Commercial License
• Static building: Integrated Qt with static build configurations: but binary size는 증가
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 10
5 Ways to improve the performance (5/5)
• Timer를 통한 Asynchronous processing: Data 처리 시간 -> UI blocking: Thread or WorkerScript 보다 overhead 적고 간단
• fontconfig 사용
• LD_DEBUG = 1
Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 11
We,provide everything of
Qt/QML including Qt Licensing