directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject Compared profiling sessions between trunk and bbb
Date Thu, 29 May 2008 01:06:20 GMT
Hi guys,

yesturday, I spent some time running my own little test - I still have 
to create a project to store this test btw - on the bigbang branch, to 
compare what we get with what we have on trunk.

Basically, without an once of optimization, trunk is 55% faster than bbb 
(5000 search req/s against 3200 search req/s).

So where do we eat too much CPU in bbb ?

The big difference is in method :, 
ExprNode, SearchControls)

For 10 000 searches, it costs 433 seconds in bbb and 218 seconds in 
trunk (so it's two time slower). Not a surprise :) What is interesting 
is that in bbb, this method spend one third of its time (120secs) 
calling this method :<init>(EntryFilteringCursor)

(this method does not exist in trunk).

Down the stack, after having passed through all the interceptors, the 
search() method doing the entries retrieval from the backend cost 
_exactly_ the same in bbb : 39 seconds in bbb, 40 seconds in trunk. 
Considering that this part has not been optimized at all, this is quite 
a good news.

So what's the biggest difference ?

We have this method call in bbb :

that is not present in trunk. It consumes 211 seconds. This is where we 
are filtering all the entries. The bad thing is that entries are cloned 
at least three times, and this is a VERY costly operation. It's easy to 

Base line is that I'm really confident that we will quickly get some 
great improvement in bbb, and I'm also pretty confident that we will be 
able to make bbb faster than trunk.

More to come later this week !

cordialement, regards,
Emmanuel L├ęcharny

View raw message