James,

Thanks for taking the time to explain your stance on these things.  I
like your experimentation approach.  I will play around with some
things and get back to you on that in a week or so.

Rob Yates (who is on paternity leave right now so likely can't respond
right now) has performed some performance analysis of Abdera with Axiom
relative to Rome (which separates the model impl from the parsing).
Parsing just titles and links from Tim Bray's feed, Rome used 6+MB of
RAM and over 600 million CPU instructions; Abdera with Axiom used around
700k of RAM and around 90 million CPU instructions.  The secret of the
performance improvement was in the use of Axiom and StAX -- that is, to
say, pull parsing and lazy creation of the object model.

These performance metrics are most likely a result of JDOM vs.
Axiom/StAX and not due to the model being separated from the parsing.
Do you happen to know what tool Rob used to determine CPU
instructions?  I would imagine it would vary due to the nature of JIT.

I had originally started down the path you are suggesting, this is
better.  Please, run some performance analysis of your own.  Look at the
stack traces.  Compare them with those of Rome.  I think you'll be
surprised at how much kruft is *not* there *because* of the direct
dependencies on Axiom and StAX.

I think API cleanliness is orthogonal to performance. Here are my questions:
1) Is the API uglier or simpler because of dependencies on Axiom and StAX?
2) Is the API higher performance due to dependencies on Axiom and StAX?

I am arguing that 1) is uglier.  Not going to argue 2. unless I run my
own performance tests like you suggested.

One last question, JSON support.  Have you and smackman made any
progress on JSON serialization?

http://smackman.com/2006/05/08/applicationatomjson/

How would suggest atom+json serialization be implemented?

Joe

Reply via email to