abdera-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "joe kim" <joe....@gmail.com>
Subject Re: Atom Data Model and Testing
Date Wed, 05 Jul 2006 19:29:18 GMT

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?


How would suggest atom+json serialization be implemented?


View raw message