directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject [ADS 2.0] New ASN.1 codec metrics
Date Sat, 09 Sep 2006 09:57:18 GMT

I spent some time this week to work on a new structure for codec. 
Basically, my initial intent was to merge Snickers and twix, to avoid a 
transformation. Another objective was to build a better Object hierarchy 
which will reflect the LDAP grammar given in RFC 2251 and RFC 4511. 
Last, not least, I wanted to decouple encoding and decoding from the 
objects, using decorators which can be BER, DSML or Ldif codecs.

I have just finished the first step of this experiment, which consist of 
a BindRequest total recvamping, except the decoding, and here is the 
result :
- Twix : encoding 10 000 000 BindRequest takes 27 seconds
- NewTwix : encoding 10 000 000 BindRequest takes 192 seconds

We can see that it's around 7 times slower, due to more objects being 
created, and may be too many methods calls through the Decorators. I 
have to check.

However, NewTwix can encode around 52 000 BindRequest by second (don't 
be afraid : I could have done it with searchRequest, but it was too 
complicated for an experiment), which is by far excedding the actual 
server capacity (we are delivering around 900 searches response per 
second, atm). But that means we will use more CPU to encode, and right 
now, the profiling sessions I have done show that encoding represent 
around 3% of the overall server CPU consumption. I'm afraid that the new 
version may use around 20%, or even worse...

Question : at what point good design is better than performance ?

Emmanuel L├ęcharny

View raw message