jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jukka Zitting <jukka.zitt...@gmail.com>
Subject Re: MongoMK Revision.toString() usage
Date Thu, 16 May 2013 16:09:56 GMT

On Thu, May 16, 2013 at 5:39 PM, Thomas Mueller <mueller@adobe.com> wrote:
> We should look at performance of Oak as a whole, to avoid optimizing the
> "wrong" (non-bottleneck) component.

+1 We have still plenty of areas where we can achieve
order-of-magnitude improvements, so I'd be reluctant to spend too much
effort at this point on 1.5% improvements.

For example, a simple node.getProperty("foo").getString() statement
still makes Oak do six (6!) tree traversals from the root to the given
node and the "foo" property gets read not once but three times. This
is already a lot better from a few months back when we did double the
extra work, but there's still room for lots of improvement.

Such unnecessary content accesses are also what makes things like the
mentioned string manipulations show up in profiler reports. Since
we're just repeatedly reading the same content from the cache,
secondary effects like the construction of temporary strings start
showing up as hotspots. Take away the extra accesses, and we'll likely
start seeing cache misses and other similar higher level constructs as
the key performance bottlenecks.

So my advice would be to avoid the temptation to go after such
small-scale issues at this point of time. They are easy to spot and
probably easy to fix, but in the big picture any improvements on such
issues will probably be insignificant.


Jukka Zitting

View raw message