<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Jul 19, 2015 at 11:11 PM, Mark Gaiser <span dir="ltr"><<a href="mailto:markg85@gmail.com" target="_blank">markg85@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I just pushed 3 UDSEntry changes to gerrit for your reviewing pleasure:</div><div><br></div><div>  1: <a href="https://gerrit.vesnicky.cesnet.cz/r/#/c/473/" target="_blank">https://gerrit.vesnicky.cesnet.cz/r/#/c/473/</a></div><div>  2: <a href="https://gerrit.vesnicky.cesnet.cz/r/#/c/474/" target="_blank">https://gerrit.vesnicky.cesnet.cz/r/#/c/474/</a></div><div>  3: <a href="https://gerrit.vesnicky.cesnet.cz/r/#/c/475/" target="_blank">https://gerrit.vesnicky.cesnet.cz/r/#/c/475/</a></div><div><br></div><div>The end result is a faster UDSEntry in every way. The benchmark results (which are from udsentrybenchmark) can be found here: <a href="http://kdeblog.mageprojects.com/?p=394&preview=1&_ppp=c936cdced4" target="_blank">http://kdeblog.mageprojects.com/?p=394&preview=1&_ppp=c936cdced4</a></div><div><br></div><div>So.. what did i do this time? Initially i wanted to get rid of the extra bookkeeping without loss of speed or increasing memory usage. This was basically an experiment to see if i could get that working. I was guessing that a linear lookup (using std::find_if) would be equally fast as QVector::contains(). That turned out to be that case as you can see in the benchmarks.</div><div><br></div><div>Next up i wanted to use more advanced C++11 that QVector simply doesn't allow: emplace_back: <a href="http://en.cppreference.com/w/cpp/container/vector/emplace_back" target="_blank">http://en.cppreference.com/w/cpp/container/vector/emplace_back</a> My guess was that it would allow for quite some speedups in inserting because objects would be created in place instead of created and copied (or moved). Looks like i was right since the benchmarks for creating entries have been improved quite a bit.</div><div><br></div><div>While at it, also implemented move semantics :)</div><div><br></div><div>In terms of memory consumption these patches don't change much. Browsing a massive folder (500.000 files) in dolphin without this patch series took ~710MB, with it the figure was about 705MB. A saving, but nothing much compared tot the total usage.</div><div><br></div><div>I would like to know what you folks think of these improvements.<br></div><div>I really wonder how much more performance i can squeeze out of UDSEntry.<br></div><div><br></div><div>Regarding gerrit. How can i make patch 2 and 3 dependent on 1?</div><div>And why is gerrit failing?</div><div><br></div><div>Best regards,</div><div>Mark</div></div>
</blockquote></div><br></div><div class="gmail_extra">New benchmark link, the other one expired..</div><div class="gmail_extra"><a href="http://kdeblog.mageprojects.com/?p=394&preview=1&_ppp=ae6e9e4851">http://kdeblog.mageprojects.com/?p=394&preview=1&_ppp=ae6e9e4851</a> (expires in one month)<br></div></div>