Patches concerning the speed of mouse-movement over the profile.

Lubomir I. Ivanov neolit123 at gmail.com
Wed Jan 14 12:08:26 PST 2015


after staring for a while at the callgrind log, i realized it did
similar to what i got from a windows tool.
my opinion is that both tools somehow don't register well the amount
of ToolTipItem calls we get and the actual CPU usage they do.
so i did some more manual investigation...

On 14 January 2015 at 21:30, Tomaz Canabrava <tcanabrava at kde.org> wrote:
> Lubomir,
>
> Now we reuse the Tooltip / Pixmap items without deleting it.
> Also a lot of uneeded calls were moved / removed.
>
> It stills uses a high cpu, but in my tests it goes from 25% to ~16%
>

this is odd, for me after 001-004 it still caps at 25%. but these are
changes in the right direction.

i've tried doing similar to what you did in 004, and without the
expand() call in addTooltip() i was able to get it down to 16%.
the animation is also very heavy - setRect() is called *many* times
during the animation and it creates new paths for the background and
border each time.
instead of paths (vector), i think the background + border should be
in QGraphicsPixmapItem where the pixmap is a paint device and
QPainter->drawRect() is used?

the problem as i've described in previous emails is that it's a
multitude of things that slow it down:
- many heap allocations / de-allocations per pixel distance moved
- animation that re-triggers constantly
- vector graphics
- etc

i suspect that if we rasterize the whole tooltip (i.e. use QPainter's
methods on a surface) and disable the animation, it will be times
faster.

lubomir
--


More information about the subsurface mailing list