[SailfishDevel] Delegate creation on demand

Robin Burchell robin.burchell at jolla.com
Sun Dec 15 20:25:03 UTC 2013


Can you please provide a minimal test case (i.e. ideally a single QML file, usable with qmlscene) demonstrating your problem?

Please see http://sscce.org/

On 15 Dec 2013, at 21:03, Hendrik Borghorst <hendrikborghorst at gmail.com> wrote:

> Hello,
> 
> the problem isn't my delegate. It is quite minimal. 
> 
> The problem is I think a bug in QML Listview. It goes absolutly crazy if
> it is invisible and starts making delegate for around 50% of all items.
> This causes the memory to run full.
> 
> A workaround I added is
> 
> model: visible ? modelVar : null
> 
> which works quite nicely. I think this bug could be an upstream qt bug?

> 
> greetings
> 
> Am Sonntag, den 15.12.2013, 10:01 +0100 schrieb
> christopher.lamb at thurweb.ch:
>> Hi Hendrik
>> 
>> Have you seen this? http://qt-project.org/wiki/Performance_tip_Lists
>> 
>> The general advice is to keep the delegates is lightweight as  
>> possible, and to use Loaders for anything needed later (e.g. onClick)
>> 
>> Chris
>> 
>> Zitat von "Hendrik Borghorst" <hendrikborghorst at gmail.com>:
>> 
>>> Hello folks,
>>> 
>>> I've got a problem with long lists (~25000 elements). All delegates are
>>> created at once which causes the memory usage to explode beyond the
>>> devices capability.
>>> 
>>> I already tried setting "cacheBuffer: 0" in SiliciaListView but  it
>>> doesn't change it.
>>> 
>>> Is the something I'm doing wrong.
>>> 
>>> You can see the actual page code here:
>>> 
>>> https://github.com/djselbeck/smpc/blob/master/pages/CurrentPlaylistPage.qml
>>> 
>>> Shouldn't the delegates be constructed on demand? It is weird because my
>>> old n8 wasn't struggling with qml lists with this size.
>>> 
>>> greetings and congrats on getting the devices to your customers (I'm
>>> very pleased)
>>> 
>> 
>> 
>> 
>> 
> 
> _______________________________________________
> SailfishOS.org Devel mailing list



More information about the Devel mailing list