QML Performance

1) Limit JavaScript
javascript

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

Item {  
     function factorial(a) {  
        ...  
     }  
     MouseArea {  
         onClicked: console.log(factorial(10)) //try to avoid the {brace};  
     }  
 }

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


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


3) Image spa

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

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

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


4) Anchors vs. Binding 图片

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


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

相关文章
相关标签/搜索