3 UDSEntry optimizations
Milian Wolff
mail at milianw.de
Fri Jul 24 19:02:26 BST 2015
On Friday, July 24, 2015 06:55:01 PM Mark Gaiser wrote:
> On Fri, Jul 24, 2015 at 10:23 AM, Milian Wolff <mail at milianw.de> wrote:
> > On Thursday, July 23, 2015 10:15:20 PM Mark Gaiser wrote:
> > > On Sun, Jul 19, 2015 at 11:11 PM, Mark Gaiser <markg85 at gmail.com> wrote:
> > > > Hi,
> > > >
> > > > I just pushed 3 UDSEntry changes to gerrit for your reviewing
pleasure:
> > > > 1: https://gerrit.vesnicky.cesnet.cz/r/#/c/473/
> > > > 2: https://gerrit.vesnicky.cesnet.cz/r/#/c/474/
> > > > 3: https://gerrit.vesnicky.cesnet.cz/r/#/c/475/
> > > >
> > > > The end result is a faster UDSEntry in every way. The benchmark
> > > > results
> > > > (which are from udsentrybenchmark) can be found here:
> > > > http://kdeblog.mageprojects.com/?p=394&preview=1&_ppp=c936cdced4
> > > >
> > > > 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.
> > > >
> > > > Next up i wanted to use more advanced C++11 that QVector simply
> > > > doesn't
> > > > allow: emplace_back:
> > > > http://en.cppreference.com/w/cpp/container/vector/emplace_back 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.
> > > >
> > > > While at it, also implemented move semantics :)
> > > >
> > > > 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.
> > > >
> > > > I would like to know what you folks think of these improvements.
> > > > I really wonder how much more performance i can squeeze out of
> >
> > UDSEntry.
> >
> > > > Regarding gerrit. How can i make patch 2 and 3 dependent on 1?
> > > > And why is gerrit failing?
> > > >
> > > > Best regards,
> > > > Mark
> > >
> > > New benchmark link, the other one expired..
> > > http://kdeblog.mageprojects.com/?p=394&preview=1&_ppp=ae6e9e4851
> >
> > (expires
> >
> > > in one month)
> >
> > What unit are these numbers in? How did you obtain them? You should make
> > this
> > as reproducible as possible, _and_ put this information /and/ the results
> > into
> > the individual commit messages. If someone will review the change in a few
> > years down the road and cannot find this website, how should he figure out
> > whether this is still applicable? Or if one wants to come up with some
> > improvements, one needs documentation on how to do that. Mixing email,
> > blog
> > and commit messages is not a good idea. The commit message should be self
> > consistent.
> >
> > I did say that in this thread. Actually in one of the first lines of this
>
> thread:
>
> quote:
> -- The end result is a faster UDSEntry in every way. The benchmark results
> (which are from udsentrybenchmark) can be found here:
> http://kdeblog.mageprojects.com/?p=394&preview=1&_ppp=c936cdced4
>
> Note the part:
> "The benchmark results (which are from udsentrybenchmark)"
>
> That line tells it all. It tells the benchmark (which is in kio.git/tests)
> i used and the results of that are in the graph. The results are obviously
> in "ms" since the benchmark is also in ms. If i change timings to a
> different unit i will obviously tell. Making the raw numbers available
> seems pointless since that's what the graph represents anyway.
>
> But you're right. I could have been a bit more verbose.
Yes, as you see I cannot follow you. And again, future people should be able
to follow as well, thus put information into commit messages and you cannot
put graphs there.
Also, please use -perf instead, preferably with -perf instr:k and/or cycles:k.
Bye
--
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20150724/759eee7e/attachment.sig>
More information about the kde-core-devel
mailing list