You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Dan Diephouse <da...@envoisolutions.com> on 2005/07/29 04:31:44 UTC

Re: [Axis2] Binary Serialisation

Has anyone done any performance tests (binary or just plan text) with 
the typed stax stuff? Does it really make a difference?
- Dan

Eran Chinthaka wrote:

>Hi Dennis,
>
>You have commented on typed pull parser in wiki. Shall we start a thread
>about it here ?
>
>-- EC
>
>  
>
>>-----Original Message-----
>>From: Apache Wiki [mailto:wikidiffs@apache.org]
>>Sent: Thursday, July 28, 2005 10:31 PM
>>To: general@ws.apache.org
>>Subject: [Ws Wiki] Update of "FrontPage/Axis2/Tasks/BinarySerialization"
>>by DennisSosnoski
>>
>>Dear Wiki user,
>>
>>You have subscribed to a wiki page or wiki category on "Ws Wiki" for
>>change notification.
>>
>>The following page has been changed by DennisSosnoski:
>>http://wiki.apache.org/ws/FrontPage/Axis2/Tasks/BinarySerialization
>>
>>--------------------------------------------------------------------------
>>----
>>  decoding the binary into an int, converting to a string for the parser
>>  API and then back to an int in the deserialisation code.
>>
>>+ I (DennisSosnoski) would personally disagree with the above assessment.
>>A typed pull parser would definitely be nice, but even without this you
>>can get substantial size and performance gains from a binary format. See
>>my articles on devWorks at http://www-
>>128.ibm.com/developerworks/xml/library/x-trans1.html and http://www-
>>128.ibm.com/developerworks/xml/library/x-trans2/index.html for examples.
>>+
>>    
>>
>
>
>
>  
>


-- 
Dan Diephouse
Envoi Solutions LLC
http://netzooid.com


Re: [Axis2] Binary Serialisation

Posted by Tatu Saloranta <co...@yahoo.com>.
--- Dennis Sosnoski <dm...@sosnoski.com> wrote:

> Tatu Saloranta wrote:
> 
> >...
> >I don't see the need to call 3 accessor methods to
> get
> >the raw char array as a significant performance
> block
>
> I didn't mean to suggest that the 3 method calls
> caused a performance 
> problem - it's just somewhat awkward, and giving
> access to the 
> underlying parser buffer is not very clean from a
> structure standpoint. 

Ah, yes, I agree with that.

> The big potential advantage I see with a
> CharSequence-type approach is 
> that it would allow the parser to avoid translating
> data to a char[] in 
> the first place, instead returning characters
> directly from the byte 
> stream input (or internal byte[]). For UTF-8 and
> UTF-16 this would be 
> very easy to implement - it's not so easy for some
> other character 
> encodings, but those could be handled by the current
> approach of 
> translating everything to chars up front.

For UTF-16 it's easier, but for UTF-8... I'm not quite
sure. Or rather, that it would still lead to the need
to scan same data at least twice (unless it's just
passed through as is); first when tokenizing (which
can be done without char conversion), and then when
some form of character data is needed?

What would be interesting to know, too, would be
whether CharacterSequence usage might be a performance
overhead too, it being an interface. I know that
HotSpot can not always (or even often) optimize calls
via interfaces as efficiently as via (final?) classes.
For example, I tested access both using HashMap
reference, and a generic Map reference that points to
a HashMap (with JDK 1.4.2), and latter was
significantly slower (yes, just a micro-benchmark...
but I think it's applicable). This because
String.charAt() I think can nowadays be as fast as
cbuf[i] (claims JavaSoft).

Lots of open questions, obviously. From API cleanness
viewpoint I do like CharacterSequence idea though.

...
> It'd be interesting to see how much parsing speeds
> up if you disable the 
> creation of Strings for attributes. Maybe that's an
> easy test you could try?

Yes, it's actually something I was thinking of adding
to "StAX2" API, and should be easy to implement.
Current implementation is actually somewhat optimized,
at least for elements that have multiple attributes:
under the hood, one long String is created (first time
a value is needed), and substrings of that one built
String are returned (except for a single value, in
which case it's returned as is). This is an
opportunistic optimization that I probably should 
benchmark bit more.

But perhaps I should see how attribute access
performance is -- most testing I have done has been
based on just raw parsing, not attribute access.

In case of StAX, anyways, attribute values are (or
should be...) generally lazily constructed, when
needed.

> As to typed accessors, I think they'd be somewhat
> useful but I expect 
> they'd also be a lot of trouble. The main benefit I

Yes, depending on where they are implemented. The most
efficient (and trickiest) would be to couple them with
tokenization... but that'd be a mess, both due to
added code at low-level, but also since it means that
there needs to be a priori knowledge of types.

On the other hand, simpler solution would be to
essentially wrap raw char array (or CharSequence) and
do conversion from there, by-passing String
construction. This need not even be in parser proper.

> see is that they 
> would make it simpler to substitute a binary data
> decoder for the 
> parser, and I'm not all that thrilled by the idea of
> pure binary data 
> streams. The binary formats would be based on
> schemas, so in theory 
> different implementations should translate the same
> schema to compatible 
> formats - but we can't even get a reasonable level
> of compatibility in 
> the use of schemas for web services with *text*
> documents, so how much 
> more difficult would it be to do this with binary
> formats?

I definitely agree with these concerns.

And in the end, I'm not 100% sure if all performance
concerns are valid. Last time I tested, almost half
(40%) of time when parsing xml docs was for raw i/o,
so overhead is "only" about half of the total
interaction time. While not perfect, I think many
people assume there'd be an order of magnitude
discrepancy or so.

And in case of binary indexing; the proposal was to
force storing the whole document in memory all at
once. That may well offset some benefits of the
approach; since although it does allow more
pass-through (raw copy) approach, for things like
routing, it also increases memory usage; index offsets
need to be recalculated when things are changed, and
in the end it may well be that speedup is somewhere in
range of 10 - 25% (as in not phenomenal).

-+ Tatu +-



		
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 

Re: [Axis2] Binary Serialisation

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
Tatu Saloranta wrote:

>...
>I don't see the need to call 3 accessor methods to get
>the raw char array as a significant performance block
>-- it certainly does not even register on profiles I
>have taken for parsing.
>  
>
I didn't mean to suggest that the 3 method calls caused a performance 
problem - it's just somewhat awkward, and giving access to the 
underlying parser buffer is not very clean from a structure standpoint. 
The big potential advantage I see with a CharSequence-type approach is 
that it would allow the parser to avoid translating data to a char[] in 
the first place, instead returning characters directly from the byte 
stream input (or internal byte[]). For UTF-8 and UTF-16 this would be 
very easy to implement - it's not so easy for some other character 
encodings, but those could be handled by the current approach of 
translating everything to chars up front.

>The only remaining area where non-shared Strings are
>used are attribute values; and here DTD/schema-based
>handling might allow sharing too (for enumerated
>types). Or, for minor improvements, type-based
>accessors could be used too. If there's interest, I
>could experiment with Woodstox stax-parser -- adding
>low-level typed accessors would be quite easy to do,
>and would avoid String creation.
>  
>
It'd be interesting to see how much parsing speeds up if you disable the 
creation of Strings for attributes. Maybe that's an easy test you could try?

As to typed accessors, I think they'd be somewhat useful but I expect 
they'd also be a lot of trouble. The main benefit I see is that they 
would make it simpler to substitute a binary data decoder for the 
parser, and I'm not all that thrilled by the idea of pure binary data 
streams. The binary formats would be based on schemas, so in theory 
different implementations should translate the same schema to compatible 
formats - but we can't even get a reasonable level of compatibility in 
the use of schemas for web services with *text* documents, so how much 
more difficult would it be to do this with binary formats?

  - Dennis

Re: [Axis2] Binary Serialisation

Posted by Tatu Saloranta <co...@yahoo.com>.
--- Dennis Sosnoski <dm...@sosnoski.com> wrote:

> That's a very nice approach for generating and
> persisting what amounts 
> to pre-parsed documents. If you were to transmit the
> token descriptor 
> data structures along with the XML document it'd
> pretty much eliminate 
> parsing for the receiver, but would apparently about
> double the document 
> size on average. The really nice use for this type
> of approach is as an 
> alternative to an object model composed of separate
> objects per 
> component, though.

True. However, I think they are overstating the degree
to which String objects (one of bigger performance
bottlenecks in parsing) are created, on temporary
basis. All modern XML parsers use fully shared Strings
for names (prefix, local name), and at least locally
shared for NS URIs. When done the right way, these can
also be shared between documents produced by parsers
that share the same string pool (or intern()).
With both SAX and StAX, one can easily access char[]
representation of textual content (with obviously
slightly more cumbersome processing as compared to
Strings -- CharacterSequence might solve, or might not
solve, problem being mutability of the underlying char
array).
I don't see the need to call 3 accessor methods to get
the raw char array as a significant performance block
-- it certainly does not even register on profiles I
have taken for parsing.

The only remaining area where non-shared Strings are
used are attribute values; and here DTD/schema-based
handling might allow sharing too (for enumerated
types). Or, for minor improvements, type-based
accessors could be used too. If there's interest, I
could experiment with Woodstox stax-parser -- adding
low-level typed accessors would be quite easy to do,
and would avoid String creation.

> Unfortunately it doesn't fit very well with either a
> StAX or DOM-like 
> API, because those use Strings (almost) everywhere.
> It'd work much 
> better in combination with a CharSequence-based API.

I haven't fully read the proposal, but it might be
possible to make use of such annotation, as long as
the parser can keep byte-accurate offsets during
parsing. This is one problem I have not yet solved,
since it does require merging of the byte->char
conversion and tokenization parts; something that
makes design less clean (and adds code size, since
generic decoders can not be used), albeit potentially
more performant (single scan instead of double scan).

-+ Tatu +-


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Re: [Axis2] Binary Serialisation

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
That's a very nice approach for generating and persisting what amounts 
to pre-parsed documents. If you were to transmit the token descriptor 
data structures along with the XML document it'd pretty much eliminate 
parsing for the receiver, but would apparently about double the document 
size on average. The really nice use for this type of approach is as an 
alternative to an object model composed of separate objects per 
component, though.

Unfortunately it doesn't fit very well with either a StAX or DOM-like 
API, because those use Strings (almost) everywhere. It'd work much 
better in combination with a CharSequence-based API.

  - Dennis

Anne Thomas Manes wrote:

>This project seems to provide substantial performance advantages in
>XML processing. Take a look at the benchmark paper:
>http://www.ximpleware.com/.
>
>Anne
>

Re: [Axis2] Binary Serialisation

Posted by Anne Thomas Manes <at...@gmail.com>.
This project seems to provide substantial performance advantages in
XML processing. Take a look at the benchmark paper:
http://www.ximpleware.com/.

Anne

On 7/29/05, Dennis Sosnoski <dm...@sosnoski.com> wrote:
> Looks like we've got a thread going, Eran!
> 
> Dan, I don't think anyone has done a performance analysis for a typed
> parser as such. It'd really need to be done in the context of some sort
> of data binding framework to be meaningful. The only thing which has
> been done along these lines that I'm aware of is Sun's "FAST Web
> Services", which merged mutant forms of JAXB and JAX-RPC so that they
> could do binary input/output. In their case they used ASN.1
> encoding/decoding of the binary data, with the ASN.1 representation
> generated from an XML Schema.
> 
> They saw much faster performance than the conventional JAX-RPC code.
> But, my own JibxSoap (a subproject of JiBX, http://www.jibx.org)
> delivers performance that appears to be about as good while still using
> standard text XML. I say "appears to be" because at the time I did the
> web services performance comparisons
> (http://www.sosnoski.com/presents/cleansoap/comparing.html) the Sun
> stuff was all proprietary. They've since opened it up on java.net, I
> think, though I don't know what kind of license restrictions might apply.
> 
> My own gut feeling is that if I used a typed parser interface for binary
> input/output with JiBX/JibxSoap I could probably get 2-2.5 X the
> processing speed of text (vs. probably about 1.4-1.8 X with my XBIS
> binary XML format, which still keeps values as text and can be
> translated to and from the text representation).
> 
> There are actually some other areas where parser usability could be
> improved, though, besides implementing a typed interface. I think
> implementing a parser that supplied element and attribute names as
> singleton QName objects of some form (rather than separate namespace
> URI, local name, and qualified name text values) would be a big gain,
> for instance. The text APIs could also be better designed; in the case
> of the StAX XMLReader, rather than returning an array plus start offset
> plus length for element content, all using separate method calls, it'd
> be cleaner to just return the equivalent of a JDK 1.5 CharSequence
> (which could be reusable). Likewise on the attribute values, where StAX
> returns Strings. Returning CharSequence-equivalents would not only avoid
> unnecessary String creation (in the case of attribute values), it would
> also eliminate the need to translate the raw byte stream to character
> arrays for common encodings (especially the UTF-8 and UTF-16 used in
> BP-compliant web services).
> 
> Unfortunately, I think developers sometimes misapply Knuth's (or Hoare's
> - I'm not sure who got this started) "premature optimization is the root
> of all evil" aphorism by designing APIs without any thought to
> performance. Once performance bottlenecks have been built into the APIs
> it's very difficult to get around them without scrapping things and
> starting over.
> 
>   - Dennis
> 
> Dan Diephouse wrote:
> 
> > Has anyone done any performance tests (binary or just plan text) with
> > the typed stax stuff? Does it really make a difference?
> > - Dan
> >
> > Eran Chinthaka wrote:
> >
> >> Hi Dennis,
> >>
> >> You have commented on typed pull parser in wiki. Shall we start a thread
> >> about it here ?
> >>
> >> -- EC
> >>
> >>
> >>
> >>> -----Original Message-----
> >>> From: Apache Wiki [mailto:wikidiffs@apache.org]
> >>> Sent: Thursday, July 28, 2005 10:31 PM
> >>> To: general@ws.apache.org
> >>> Subject: [Ws Wiki] Update of
> >>> "FrontPage/Axis2/Tasks/BinarySerialization"
> >>> by DennisSosnoski
> >>>
> >>> Dear Wiki user,
> >>>
> >>> You have subscribed to a wiki page or wiki category on "Ws Wiki" for
> >>> change notification.
> >>>
> >>> The following page has been changed by DennisSosnoski:
> >>> http://wiki.apache.org/ws/FrontPage/Axis2/Tasks/BinarySerialization
> >>>
> >>> --------------------------------------------------------------------------
> >>>
> >>> ----
> >>>  decoding the binary into an int, converting to a string for the parser
> >>>  API and then back to an int in the deserialisation code.
> >>>
> >>> + I (DennisSosnoski) would personally disagree with the above
> >>> assessment.
> >>> A typed pull parser would definitely be nice, but even without this you
> >>> can get substantial size and performance gains from a binary format.
> >>> See
> >>> my articles on devWorks at http://www-
> >>> 128.ibm.com/developerworks/xml/library/x-trans1.html and http://www-
> >>> 128.ibm.com/developerworks/xml/library/x-trans2/index.html for
> >>> examples.
> >>> +
> >>>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >
>

Re: [Axis2] Binary Serialisation

Posted by Dan Diephouse <da...@envoisolutions.com>.
Eran Chinthaka wrote:

>Hi XML Gurus, 
>
>Can I ask a novice question about Binary XML stuff ??. 
>
>Is there any existing implementations of binary protocols with StAX support
>? In other words are there any implementations which provides StAX events on
>a binary stream.
>Once I can remember Mark Pimentel mentioned something like that (Was it Fast
>Infoset ??). 
>
>If there is one, can we integrate that to Axis2 and see how much performance
>improvement we can gain out of it. I'd love to integrate at least one of the
>existing implementations, before Mark finishes his project.
>
>-- Eran Chinthaka 
>  
>
Fast Infoset Project: https://fi.dev.java.net/

Never tried it though. Have others?

-- 
Dan Diephouse
(616) 971-2053
Envoi Solutions LLC
http://netzooid.com


RE: [Axis2] Binary Serialisation

Posted by Eran Chinthaka <ch...@opensource.lk>.
Hi XML Gurus, 

Can I ask a novice question about Binary XML stuff ??. 

Is there any existing implementations of binary protocols with StAX support
? In other words are there any implementations which provides StAX events on
a binary stream.
Once I can remember Mark Pimentel mentioned something like that (Was it Fast
Infoset ??). 

If there is one, can we integrate that to Axis2 and see how much performance
improvement we can gain out of it. I'd love to integrate at least one of the
existing implementations, before Mark finishes his project.

-- Eran Chinthaka 

> -----Original Message-----
> From: Dennis Sosnoski [mailto:dms@sosnoski.com]
> Sent: Friday, July 29, 2005 10:56 AM
> To: axis-dev@ws.apache.org
> Subject: Re: [Axis2] Binary Serialisation
> 
> Looks like we've got a thread going, Eran!
> 
> Dan, I don't think anyone has done a performance analysis for a typed
> parser as such. It'd really need to be done in the context of some sort
> of data binding framework to be meaningful. The only thing which has
> been done along these lines that I'm aware of is Sun's "FAST Web
> Services", which merged mutant forms of JAXB and JAX-RPC so that they
> could do binary input/output. In their case they used ASN.1
> encoding/decoding of the binary data, with the ASN.1 representation
> generated from an XML Schema.
> 
> They saw much faster performance than the conventional JAX-RPC code.
> But, my own JibxSoap (a subproject of JiBX, http://www.jibx.org)
> delivers performance that appears to be about as good while still using
> standard text XML. I say "appears to be" because at the time I did the
> web services performance comparisons
> (http://www.sosnoski.com/presents/cleansoap/comparing.html) the Sun
> stuff was all proprietary. They've since opened it up on java.net, I
> think, though I don't know what kind of license restrictions might apply.
> 
> My own gut feeling is that if I used a typed parser interface for binary
> input/output with JiBX/JibxSoap I could probably get 2-2.5 X the
> processing speed of text (vs. probably about 1.4-1.8 X with my XBIS
> binary XML format, which still keeps values as text and can be
> translated to and from the text representation).
> 
> There are actually some other areas where parser usability could be
> improved, though, besides implementing a typed interface. I think
> implementing a parser that supplied element and attribute names as
> singleton QName objects of some form (rather than separate namespace
> URI, local name, and qualified name text values) would be a big gain,
> for instance. The text APIs could also be better designed; in the case
> of the StAX XMLReader, rather than returning an array plus start offset
> plus length for element content, all using separate method calls, it'd
> be cleaner to just return the equivalent of a JDK 1.5 CharSequence
> (which could be reusable). Likewise on the attribute values, where StAX
> returns Strings. Returning CharSequence-equivalents would not only avoid
> unnecessary String creation (in the case of attribute values), it would
> also eliminate the need to translate the raw byte stream to character
> arrays for common encodings (especially the UTF-8 and UTF-16 used in
> BP-compliant web services).
> 
> Unfortunately, I think developers sometimes misapply Knuth's (or Hoare's
> - I'm not sure who got this started) "premature optimization is the root
> of all evil" aphorism by designing APIs without any thought to
> performance. Once performance bottlenecks have been built into the APIs
> it's very difficult to get around them without scrapping things and
> starting over.
> 
>   - Dennis
> 
> Dan Diephouse wrote:
> 
> > Has anyone done any performance tests (binary or just plan text) with
> > the typed stax stuff? Does it really make a difference?
> > - Dan
> >
> > Eran Chinthaka wrote:
> >
> >> Hi Dennis,
> >>
> >> You have commented on typed pull parser in wiki. Shall we start a
> thread
> >> about it here ?
> >>
> >> -- EC
> >>
> >>
> >>
> >>> -----Original Message-----
> >>> From: Apache Wiki [mailto:wikidiffs@apache.org]
> >>> Sent: Thursday, July 28, 2005 10:31 PM
> >>> To: general@ws.apache.org
> >>> Subject: [Ws Wiki] Update of
> >>> "FrontPage/Axis2/Tasks/BinarySerialization"
> >>> by DennisSosnoski
> >>>
> >>> Dear Wiki user,
> >>>
> >>> You have subscribed to a wiki page or wiki category on "Ws Wiki" for
> >>> change notification.
> >>>
> >>> The following page has been changed by DennisSosnoski:
> >>> http://wiki.apache.org/ws/FrontPage/Axis2/Tasks/BinarySerialization
> >>>
> >>> ----------------------------------------------------------------------
> ----
> >>>
> >>> ----
> >>>  decoding the binary into an int, converting to a string for the
> parser
> >>>  API and then back to an int in the deserialisation code.
> >>>
> >>> + I (DennisSosnoski) would personally disagree with the above
> >>> assessment.
> >>> A typed pull parser would definitely be nice, but even without this
> you
> >>> can get substantial size and performance gains from a binary format.
> >>> See
> >>> my articles on devWorks at http://www-
> >>> 128.ibm.com/developerworks/xml/library/x-trans1.html and http://www-
> >>> 128.ibm.com/developerworks/xml/library/x-trans2/index.html for
> >>> examples.
> >>> +
> >>>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >




Re: [Axis2] Binary Serialisation

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
Looks like we've got a thread going, Eran!

Dan, I don't think anyone has done a performance analysis for a typed 
parser as such. It'd really need to be done in the context of some sort 
of data binding framework to be meaningful. The only thing which has 
been done along these lines that I'm aware of is Sun's "FAST Web 
Services", which merged mutant forms of JAXB and JAX-RPC so that they 
could do binary input/output. In their case they used ASN.1 
encoding/decoding of the binary data, with the ASN.1 representation 
generated from an XML Schema.

They saw much faster performance than the conventional JAX-RPC code. 
But, my own JibxSoap (a subproject of JiBX, http://www.jibx.org) 
delivers performance that appears to be about as good while still using 
standard text XML. I say "appears to be" because at the time I did the 
web services performance comparisons 
(http://www.sosnoski.com/presents/cleansoap/comparing.html) the Sun 
stuff was all proprietary. They've since opened it up on java.net, I 
think, though I don't know what kind of license restrictions might apply.

My own gut feeling is that if I used a typed parser interface for binary 
input/output with JiBX/JibxSoap I could probably get 2-2.5 X the 
processing speed of text (vs. probably about 1.4-1.8 X with my XBIS 
binary XML format, which still keeps values as text and can be 
translated to and from the text representation).

There are actually some other areas where parser usability could be 
improved, though, besides implementing a typed interface. I think 
implementing a parser that supplied element and attribute names as 
singleton QName objects of some form (rather than separate namespace 
URI, local name, and qualified name text values) would be a big gain, 
for instance. The text APIs could also be better designed; in the case 
of the StAX XMLReader, rather than returning an array plus start offset 
plus length for element content, all using separate method calls, it'd 
be cleaner to just return the equivalent of a JDK 1.5 CharSequence 
(which could be reusable). Likewise on the attribute values, where StAX 
returns Strings. Returning CharSequence-equivalents would not only avoid 
unnecessary String creation (in the case of attribute values), it would 
also eliminate the need to translate the raw byte stream to character 
arrays for common encodings (especially the UTF-8 and UTF-16 used in 
BP-compliant web services).

Unfortunately, I think developers sometimes misapply Knuth's (or Hoare's 
- I'm not sure who got this started) "premature optimization is the root 
of all evil" aphorism by designing APIs without any thought to 
performance. Once performance bottlenecks have been built into the APIs 
it's very difficult to get around them without scrapping things and 
starting over.

  - Dennis

Dan Diephouse wrote:

> Has anyone done any performance tests (binary or just plan text) with 
> the typed stax stuff? Does it really make a difference?
> - Dan
>
> Eran Chinthaka wrote:
>
>> Hi Dennis,
>>
>> You have commented on typed pull parser in wiki. Shall we start a thread
>> about it here ?
>>
>> -- EC
>>
>>  
>>
>>> -----Original Message-----
>>> From: Apache Wiki [mailto:wikidiffs@apache.org]
>>> Sent: Thursday, July 28, 2005 10:31 PM
>>> To: general@ws.apache.org
>>> Subject: [Ws Wiki] Update of 
>>> "FrontPage/Axis2/Tasks/BinarySerialization"
>>> by DennisSosnoski
>>>
>>> Dear Wiki user,
>>>
>>> You have subscribed to a wiki page or wiki category on "Ws Wiki" for
>>> change notification.
>>>
>>> The following page has been changed by DennisSosnoski:
>>> http://wiki.apache.org/ws/FrontPage/Axis2/Tasks/BinarySerialization
>>>
>>> -------------------------------------------------------------------------- 
>>>
>>> ----
>>>  decoding the binary into an int, converting to a string for the parser
>>>  API and then back to an int in the deserialisation code.
>>>
>>> + I (DennisSosnoski) would personally disagree with the above 
>>> assessment.
>>> A typed pull parser would definitely be nice, but even without this you
>>> can get substantial size and performance gains from a binary format. 
>>> See
>>> my articles on devWorks at http://www-
>>> 128.ibm.com/developerworks/xml/library/x-trans1.html and http://www-
>>> 128.ibm.com/developerworks/xml/library/x-trans2/index.html for 
>>> examples.
>>> +
>>>   
>>
>>
>>
>>
>>  
>>
>
>