<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">On Monday 08 June 2009, Sven Langkamp wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; I have commited a first version of the iterator benchmark we dicussed<br>
&gt; yesterday. It basically iterates over a paint device without doing memcpys.<br>
&gt; The results are as we expected:<br>
&gt;<br>
&gt; -HLine- and VLineIterator perform quite similar.<br>
&gt; -the rect iterator about 10% faster than hline<br>
&gt; -the random accesor is about 40% slower than hline<br>
&gt;<br>
&gt; I tried callgrind on it, but for some reason it doesn't work that good<br>
&gt; (maybe because of the unit test) and it's really slow. Any idea if it's<br>
&gt; possible to speed it up a bit?<br>
&gt;<br>
&gt;<br>
&gt; Sven<br>
I runned it with callgrind, since it takes 20 minutes, you can get the file here [1].<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I didn't do a full analysis yet, but there is something fishy, I think the random accessor should have the same performance as the line iterator (a little bit more slow since there is more checking in the accessor than iterator, and the cache doesn't help since it only caches four tiles (main use of the cache was/is for the sub random accessor). And I noticed something definitively wrong, the random accessor call twice as more fetchTiles as the h/v iterators do. Either there is something wrong in the benchmark (but couldn't see it) or a bug in the accessor. I will need to investigate more.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>[1] http://cyrille.diwi.org/tmp/krita/callgrind.out.10663<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>-- <br>
Cyrille Berger</p></body></html>