[xsd-users] Binary serialization performance in version 4.0.0 vs 3.3.0

Boris Kolpackov boris at codesynthesis.com
Wed Oct 15 23:32:00 EDT 2014


Hi Svetlana,

svetlana.samsonik at thomsonreuters.com <svetlana.samsonik at thomsonreuters.com> writes:

> After upgrading to version 4.0 there is a performance difference  for
> parsing and binary serialization (XDR).
> 
> [...]
> 
> Is the difference expected?

We check for parsing/serialization performance regressions before
every release and there weren't any between 3.3.0 and 4.0.0. We
haven't tested binary serialization but I wouldn't expect any
difference there since it stayed relatively unchanged.

There is the 'performance' example that measures the parsing
and serialization performance. Here are the numbers I get for
a 50k file:

./driver-3.3 test-50k.xml
parsing:
  document size:  51324 bytes
  iterations:     1000
  time:           3.628948000 sec
  throughput:     275.562 documents/sec
  throughput:     13.4878 MBytes/sec
serialization:
  document size:  51324 bytes
  iterations:     1000
  time:           4.977265000 sec
  throughput:     200.914 documents/sec
  throughput:     9.83399 MBytes/sec

./driver-4.0 test-50k.xml
parsing:
  document size:  51324 bytes
  iterations:     1000
  time:           3.686281000 sec
  throughput:     271.276 documents/sec
  throughput:     13.278 MBytes/sec
serialization:
  document size:  51324 bytes
  iterations:     1000
  time:           5.215050000 sec
  throughput:     191.753 documents/sec
  throughput:     9.3856 MBytes/sec

For 500k file:

./driver-3.3 test-500k.xml
parsing:
  document size:  512146 bytes
  iterations:     1000
  time:           38.327591000 sec
  throughput:     26.0909 documents/sec
  throughput:     12.7433 MBytes/sec
serialization:
  document size:  512146 bytes
  iterations:     1000
  time:           51.091402000 sec
  throughput:     19.5728 documents/sec
  throughput:     9.55974 MBytes/sec

./driver-4.0 test-500k.xml
parsing:
  document size:  512146 bytes
  iterations:     1000
  time:           39.594913000 sec
  throughput:     25.2558 documents/sec
  throughput:     12.3354 MBytes/sec
serialization:
  document size:  512146 bytes
  iterations:     1000
  time:           50.190411000 sec
  throughput:     19.9241 documents/sec
  throughput:     9.73135 MBytes/sec

This is on my Linux box compiled with GCC/-O3 and using Xerces-C++ 3.1.1.

Could you run this test in your configuration and see if you get a
similar picture?

Boris



More information about the xsd-users mailing list