[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: Optimizing spray&memory swapping
From: "LukasT.dev () gmail ! com" <lukast ! dev () gmail ! com>
Date: 2010-04-22 16:27:11
Message-ID: 201004221827.11760.LukasT.dev () gmail ! com
[Download RAW message or body]
Hello,
I did some profiling of the spray and I run into some strange issues.
Basically it is about fillPainterPath method in KisPainter.
In spray it is used heavily when painting circles, ellipses, rectangles.
It might be a nice idea to try to use mask generators instead because now they
support also rotation and when I wrote spray, rotation was not there so I used
my own code to write polygons and fill them with fillPainterPath.
From the profiling data [1] I noticed that there is KisPaintDevice
created&destroyed per sprayed particle and that is slow. I produced patch [2]
that reuse KisPaintDevice with clear() but then I run the benchmarkRandomLines
and all my ram memory was filled with data, the computer stopped to respond for
two minutes because of swapping.
I used this setting of the spray [3] and [4]. One use two particles, the other
one 21 particles.
I could reproduce the swapping and memory madness also inside Krita (The
memory swapping was discovered by running KisStrokeBenchmark with those
settings and using benchmarkRandomLines). To reproduce I just select the
preset [3] and do infinite stroke with mouse in circle. I was stopped by
swapping. This swapping is present only with the patch [2], when in Krita,
I feel just some slowdown in time doing the stroke.
I don't know what is going on. Have you got any idea? Is there some leak?
[1] http://lukast.mediablog.sk/callgrind/spraybrush-profiling.tar.gz
[2] http://lukast.mediablog.sk/patches/reuse-kisPaintDevice.patch
[3] http://lukast.mediablog.sk/presets/spray_scaled2rasterParticles.kpp
[4] http://lukast.mediablog.sk/presets/spray_30px21rasterParticles.kpp
_______________________________________________
kimageshop mailing list
kimageshop@kde.org
https://mail.kde.org/mailman/listinfo/kimageshop
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic