25.12.2016, 08:50, "Phil Bouchard" <[email protected]>: > On 12/25/2016 12:25 AM, Konstantin Tokarev wrote: >>> Greetings, >>> >>> I am a QML developer and it came to my attention that the animation is >>> sluggish because of the internal garbage collector. >> >> Do you have any proofs that GC is to blame here? > > My app works fine below a certain threshold but as soon as I reach a > certain level of complexity, the animation of the app randomly starts > skipping frames.
Could you please provide self-contained example of application that invokes pathological GC behavior? >I know the GC randomly kicks in so it fits the same pattern. Having 2 randomly repeating events in the system does not necessary mean these events are correlated. You should provide profiling results or at least logs that show GC kicking in during animation. > >>> I know about the >>> QtQuickCompiler that could speed up the rendering but it still uses a >>> garbage collector. >>> >>> I wrote myself a "container-oriented deterministic memory manager" >>> called "root_ptr" that could definitely speed up animation of QML objects: >>> https://github.com/philippeb8/root_ptr >> >> Any numbers for "definitely speed up"? > > Well as you can see on the aforementioned link, root_ptr is as fast as > the best usage of shared_ptr but detects cycles and uses the same amount > of memory per pointer. Decently implemented GC can be faster than shared_ptr, because reference counting churn is avoided BTW, FAQ says that VS2015 is required to build your code, so it cannot be integrated into V4 until VS2013 support is dropped. > > Furthermore it is "deterministic" so it's not going to randomly slow > down the animation of your app. Also it is "container-oriented" meaning > once the "root_ptr" of a container is deleted, all of its child ptrs > gets instantly deleted, bringing down all potential cycles. So the > deletion of a Javascript page will not leave any dangling memory block > behind. > > I have talked previously to the WebKit group but their implementation is > too complex to simply "swap" the memory manager. So I was hoping the > QtQuickCompiler generates a cleaner memory manager that could be swapped > relatively easily. > >>> Is that something that could be easily integrated into the >>> QtQuickCompiler? If so would there be any interests to integrate root_ptr? >>> >>> Sincerely, >>> -Phil >>> >>> _______________________________________________ >>> Development mailing list >>> [email protected] >>> http://lists.qt-project.org/mailman/listinfo/development > > _______________________________________________ > Development mailing list > [email protected] > http://lists.qt-project.org/mailman/listinfo/development -- Regards, Konstantin _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
