mirror of
git://git.psyc.eu/libpsyc
synced 2024-08-15 03:19:02 +00:00
first suggestions for a benchmark
This commit is contained in:
parent
bafa18f7b7
commit
e71f5a9291
1 changed files with 53 additions and 0 deletions
53
bench/benchmark.wiki
Normal file
53
bench/benchmark.wiki
Normal file
|
@ -0,0 +1,53 @@
|
|||
= libpsyc Performance Benchmarks =
|
||||
|
||||
In this document we present the results of performance benchmarks
|
||||
of libpsyc compared with libjson-glib and libxml2.
|
||||
|
||||
== Procedure ==
|
||||
|
||||
We'll use typical messages from the XMPP ("stanzas" in Jabber
|
||||
lingo) and compare them with equivalent PSYC packets and
|
||||
JSON encodings.
|
||||
|
||||
In some cases we will additionally compare PSYC packets to
|
||||
a more efficient XML encoding based on PSYC methods, to have
|
||||
a more accurate comparison of the actual PSYC and XML
|
||||
syntaxes, rather than the protocol structures of PSYC and XMPP.
|
||||
|
||||
== Caveats ==
|
||||
|
||||
In every case we'll compare performance of parsing and re-rendering
|
||||
these messages, but consider also that the applicative processing
|
||||
of an XML DOM tree is more complicated than just accessing
|
||||
certain elements in a JSON data structure or PSYC variable
|
||||
mapping.
|
||||
|
||||
For a speed check in real world conditions which also consider the
|
||||
complexity of processing incoming messages we should compare
|
||||
the performance of a chat client using the two protocols,
|
||||
for instance by using libpurple with XMPP and PSYC accounts.
|
||||
To this purpose we first need to integrate libpsyc into libpurple.
|
||||
|
||||
== The Benchmarks ==
|
||||
|
||||
=== A presence packet ===
|
||||
|
||||
Since presence packets are by far the dominant messaging content
|
||||
in the XMPP network, we'll start with one of them.
|
||||
|
||||
<pre>
|
||||
...
|
||||
</pre>
|
||||
|
||||
and here's the same information in a JSON rendition:
|
||||
|
||||
<pre>
|
||||
...
|
||||
</pre>
|
||||
|
||||
=== An average chat message ===
|
||||
=== A social network activity ===
|
||||
=== A message with JSON-unfriendly characters ===
|
||||
=== A message with XML-unfriendly characters ===
|
||||
=== A packet containing a JPEG photograph ===
|
||||
|
Loading…
Reference in a new issue