[SailfishDevel] Delegate creation on demand

Andrey Kozhevnikov coderusinbox at gmail.com
Sun Dec 15 20:19:30 UTC 2013


you doing it wrong. its all what i see now :)

On 16.12.2013 02:17, Hendrik Borghorst wrote:
> It is weird if I have to manually optimize something which worked for 2
> years on an old Nokia N8 with 128? MB memory. I don't see any reason for
> qt to create those delegate items and as I read the documentation of the
> qt-project QAbstractListModel is exactly the way to go.
>
> Also there are cases where manual optimization is far less efficient
> than tested optimizations done by compilers or good libraries ;) .
>
> Am Montag, den 16.12.2013, 02:14 +0600 schrieb Andrey Kozhevnikov:
>> no, i mean manual optimization.
>>
>> like loading model when it actually requires, or dynamically create
>> listview with model using component loader or createComponent.
>>
>> QML is easy and fast when you making small projects. but for complex
>> you should thinh HOW code actially works after interpretation.
>>
>> On 16.12.2013 02:08, Hendrik Borghorst wrote:
>>
>>> What do you mean exactly?
>>>
>>> Isn't this exactly what ListView should do automatically which can be
>>> influenced with cacheBuffer? Which by the way works correctly as long as
>>> the listview stays visible.
>>>
>>> greetings
>>>
>>>
>>> Am Montag, den 16.12.2013, 02:05 +0600 schrieb Andrey Kozhevnikov:
>>>> load model dynamically?
>>>>
>>>> if you wont preload model before using it can solve many problems.
>>>> :)
>>>>
>>>> On 16.12.2013 02:03, Hendrik Borghorst 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
>>>> _______________________________________________
>>>> SailfishOS.org Devel mailing list
>>>
>>> _______________________________________________
>>> SailfishOS.org Devel mailing list
>> _______________________________________________
>> SailfishOS.org Devel mailing list
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20131216/58b9c74e/attachment.html>


More information about the Devel mailing list