QML性能

 

1) Limit JavaScript

  a) inline JavaScript:  内联的JavaScript方法;
  1. 将js方法放置在Element内部;  2. 尝试将语句写在一行内; e.g.

 

1
2
3
4
5
6
7
8
Item { 
      function  factorial(a) { 
         ... 
     
      MouseArea { 
          onClicked: console.log(factorial(10))  //try to avoid the {brace}; 
     
  }

  b) 对于复杂的逻辑业务, 用C++代替JavaScript实现;


2) Clipping: 只有在必须的时候使用 Item.clip, 在painting的时候它会影响程序的效率;


3) Image

  a) 使用 Image.sourceSize 属性来将图片扩大以显示大图片, 这样可以省下大图片所占的空间; 

  b) 只有在必须的时候使用 Image.smooth. 

  c) 不要使用一大堆复杂的Element组合来画图, 提供一张IMAGE资源就可以简单有效地显示静态图像;


4) Anchors vs. Binding

使用anchors比起把x,y位置根据互相关系固定起来的方式要有效率, 而且在左右互换或实现镜像的时候更合适;


5) Opaque Items: 如果一个Item被一个不透明的item整个遮盖住了, 把这个item的opacity设为0;


6) View delegatescacheBuffer 设定一定的值(根据具体情况选择大小), 把View里面的Item缓存起来;


 

由系统环境决定:

-Use showFullScreen() 全屏显示

-Use a different graphics system 更换一个图形系统;


Refer to: http://doc.qt.digia.com/4.7/qdeclarativeperformance.html  & http://cdumez.blogspot.com/2010/12/ways-to-improve-qml-performance.html

 

原文地址:https://www.cnblogs.com/javawebsoa/p/3150407.html