5 ways to improve the performance of qml applications on ... · ocube co., ltd. | confidential 0...

12
Always in your life Always in your life OCUBE CO., LTD. | CONFIDENTIAL 0 5 Ways to improve the performance of QML Applications on low-cost Automotive devices 이상만 2015.11.03

Upload: others

Post on 17-Apr-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

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

Page 2: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

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

Page 3: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

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 개발 경험

Page 4: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

Always in your life

Background

3

• Embedded 개발 환경

• Automotive : Machinery

• Mobile vs Automotive

• Trend & Business

• 그럼에도 불구하고 …

: still low-cost

Page 5: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on 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

Page 6: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 5

Issues and Analysis (2/2)

• Using QML profiling from QtCreator: Available remote profiling

Page 7: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

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

Page 8: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

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 충분히 활용

Page 9: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

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

Page 10: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

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는 증가

Page 11: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

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

Page 12: 5 Ways to improve the performance of QML Applications on ... · OCUBE CO., LTD. | CONFIDENTIAL 0 Always in your life 5 Ways to improve the performance of QML Applications on low-cost

Always in your lifeAlways in your lifeOCUBE CO., LTD. | CONFIDENTIAL 11

We,provide everything of

Qt/QML including Qt Licensing