Preliminary testing of the strokes framework

Dmitry Kazakov dimula73 at gmail.com
Fri Jul 8 13:42:37 CEST 2011


Ok, i've done some measurements. And it looks like the new version is much
more responsive (according to my tests on my machine) =)

Here are the graphs:
http://i677.photobucket.com/albums/vv137/dimula73/krita_graph1.png

How I tested. I measured the "response time" of the stroke. The response
time is a period that lasts since the painting job is put into the queue and
the merge process is finished (the new data has been transferred to the ui
thread). This time depends on the speed the user paints with. That is why
the graphs are attached. The most interesting graph is the first one. It
shows the response time (in milliseconds) relative to the mouse speed
(pixels per millisecond). You can see that my cpu (2 cores) saturates at the
speed about 1.2 px/msec. The response time grows dramatically. From the user
point of view the saturation looks like delaying of the painting relative to
the mouse cursor. So the most important part of the graph is the leftmost
(<1.2px/msec) part, when the user still controls the painting.

You can see from the graph that the new version has much better response
times. I can't tell you the exact explanation. But the most probably, the
reason is that the cpu gets saturated with the old version, because the old
version has an excessive thread in KisToolFreehand. So that the cost of this
thread is much higher than its productivity.


Ok, that was theory, but now I need someone to test this tool on different
machines to get better statistics. If someone has a bit of time, could you
test it?

How to test:
Currently, there are two special branches for measurement:

Old version (based on master):
git checkout origin/response-measure-old-kazakov

New version (based on my branch):
git checkout origin/response-measure-new-kazakov


1) First, you need to checkout one of the two branches
2) Build, run Krita
3) Select exactly one preset and do not change it's size/parameters during
testing
4) Perform about 50-70 strokes.
5) The data with numbers will be dumped to your terminal, you should copy it
and save somewhere

6) Repeat the same for another branch. Make sure that you use the same
preset with the same parameters while painting.
7) Save the data to a different file. And send both of them to me =)

8) Switch back to master:
git checkout master



-- 
Dmitry Kazakov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kimageshop/attachments/20110708/9a061835/attachment.htm 


More information about the kimageshop mailing list