
ASN.1 Consortium
Benchmark Review: Comparison between binary encoder vs. textual encoder
Study by uniGone
The benchmark results
provided by uniGone are unfortunately not as relevant as those provided
by OSS since we are developping tools only for the Java language. However,
we have managed the same tests that were made by OSS and Erlang using
JAVA : 100000 encodings and decodings of the 28 messages given by the
Erlang benchmark.
The tests were made
on Windows NT4 instead of Linux RedHat 7. Tests have been made with
MEGACO Asn1API generated by Asn1Compiler 1.5.1 (currently shiping).
We are not able
to make an exact comparison between results because we have not run
the Linux Erlang benchmarks (no available powerful enough Linux machine!).
And the machine we ran the tests on was far less powerful than the machine
used by OSS to run the Erlang benchmark. Yet, the results we provide
for JAVA with PER show that we obtain relatively similar results to
the "compact" text encoding of Erlang implementation! Besides,
the Erlang BER/PER implementation seems to be less optimized than ours
since it is slower on a powerful machine than in JAVA on a less powerful
machine! This confirms the point that tools that are optimized for binary
encodings perform much better than those that are optimized for textual
encodings and the results show that Erlang tools are not optimized for
binary encodings.
We thus come to
the same conclusion as OSS : "if you need speed go binary".
Even JAVA BER (and of course PER) can produce better results than "compact
text" encoding!
We also come to
the conclusion that for an ASN.1 syntax like MEGACO, PER encodings are
better than BER encodings : better encoding/decoding times and smaller
encodings sizes.
uniGone benchmark
machine : Windows NT 4, 533Mhz Pentium, 128 MB RAM
uniGone benchmark language : JAVA

OSS Erlang benchmark
machine : Linux Red Hat 7, 900Mhz, 256 MB RAM
Erlang benchmark language : Erlang
OSS benchmark language : C
View OSS Study