[Qt-qml] on device performance

Pasi.Kellokoski at nokia.com Pasi.Kellokoski at nokia.com
Fri Jan 28 11:51:49 CET 2011


Hi Martin,

I'm not quite sure what the problem is from the below info. Is it that if you have ListView and C++ model -> you change the Model data -> performance goes down?

The Model interface is a known performance bottleneck, see the following:
View Delegates
Delegates must be created quickly as the view is flicked. There are two important aspects to maintaining a smooth view:
*         Small delegates - keep the amount of QML to a minimum. Have just enough QML in the delegate to display the necessary information. Any additional functionality that is only needed when the delegate is clicked, for example, should be created by a Loader as needed.
*         Fast data access - ensure the data model is as fast as possible.
http://doc.qt.nokia.com/4.7-snapshot/qdeclarativeperformance.html

You can use the cacheBuffer property to reduce the number of model accesses, I wonder if that would help. What I've heard is that it is only really useful when every item in the view can be cached (very small lists).
http://doc.qt.nokia.com/4.7-snapshot/qml-listview.html#cacheBuffer-prop

- Pasi


From: qt-qml-bounces+pasi.kellokoski=nokia.com at qt.nokia.com [mailto:qt-qml-bounces+pasi.kellokoski=nokia.com at qt.nokia.com] On Behalf Of ext martin.jones at nokia.com
Sent: 28. tammikuuta 2011 4:24
To: rumidday at gmail.com; hald at icandy.de
Cc: qt-qml at trolltech.com
Subject: Re: [Qt-qml] on device performance

Are you able to capture this problem in a small example?

Br,
Martin.

From: qt-qml-bounces+martin.jones=nokia.com at qt.nokia.com [mailto:qt-qml-bounces+martin.jones=nokia.com at qt.nokia.com] On Behalf Of ext Alexey Zaryanov
Sent: Tuesday, 25 January 2011 8:52 AM
To: Cornelius Hald
Cc: qt-qml at trolltech.com
Subject: Re: [Qt-qml] on device performance

I have some new troubles (ListView and my own C++ model):
Spent a lot of time cleaning the model (more than 100 ms on n900)
example:

void QObjectListModel::clear()
{
    beginRemoveRows(QModelIndex(), 0, m_objects.count());
   // bla bla
    endRemoveRows();
    emit countChanged();
}

And next problem. IU works well at first time, but if i change model data - performance is going down. =(
2010/12/18 Cornelius Hald <hald at icandy.de<mailto:hald at icandy.de>>
> If you aren't doing so already, I'd suggest also:
> * running using the raster graphics system (i.e. raster + GL viewport). This has an impact because so many of the items cache their drawing to pixmaps.
> * turning off sample buffers (below is what we do in qmlviewer), as long as the graphical results are acceptable to you
>
> QGLFormat format = QGLFormat::defaultFormat();
> format.setSampleBuffers(false);
> QGLWidget *glWidget = new QGLWidget(format);
> //### potentially faster, but causes junk to appear if top-level is Item, not Rectangle
> //glWidget->setAutoFillBackground(false);
> view->setViewport(glWidget);
>
> * As mentioned in an earlier reply, running fullscreen rather than maximized if possible (compositing is quite expensive, and avoiding it gives a very nice performance bump)
Thanks for the tips! Are there any similar optimizations that can be done for Symbian^1 and Symbian^3 devices?

Cheers,
Conny


_______________________________________________
Qt-qml mailing list
Qt-qml at qt.nokia.com<mailto:Qt-qml at qt.nokia.com>
http://lists.qt.nokia.com/mailman/listinfo/qt-qml

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt.nokia.com/pipermail/qt-qml/attachments/20110128/cabadca4/attachment-0001.html 


More information about the Qt-qml mailing list