Jonathan,

Good point about the nop. The nop is on BOTH protocols and does not count 
against the total time or the averages. Here are the results from that:

ADD TWO NUMBERS
==================================
JSON-RPC: 75.57 ms
XML-RPC: 45.65 ms
Result: XML won by: 29.92 ms (165.5% faster)


CONCATENATE TWO STRINGS
==================================
JSON-RPC: 47.38 ms
XML-RPC: 44.06 ms
Result: XML won by: 3.32 ms (107.5% faster)


HANDLE BOOLEAN VALUE
==================================
JSON-RPC: 47.34 ms
XML-RPC: 45.12 ms
Result: XML won by: 2.22 ms (104.9% faster)


HANDLE DATETIME VALUE
==================================
JSON-RPC: 49.72 ms
XML-RPC: 44.40 ms
Result: XML won by: 5.31 ms (112.0% faster)


HANDLE COMPLEX OBJECTS
==================================
JSON-RPC: 46.94 ms
XML-RPC: 49.16 ms
Result: JSON won by: 2.22 ms (104.7% faster)


FINAL RESULTS
==================================
JSON-RPC Average Time: 53.39 ms
JSON-RPC Total Time Taken: 9353.91 ms
XML-RPC Average Time: 45.68 ms
XML-RPC Total Time Taken: 8581.04 ms
Result: XML won by: 7.71 ms (116.9% faster)



I also took Anthony's advice and removed all the models, except for three 
lines from db.py that are required:

from gluon.tools import Service
service = Service()
response.generic_patterns = ['*']

This has changed the results quite a bit:

ADD TWO NUMBERS
==================================
JSON-RPC: 54.63 ms
XML-RPC: 18.32 ms
Result: XML won by: 36.31 ms (298.2% faster)


CONCATENATE TWO STRINGS
==================================
JSON-RPC: 56.27 ms
XML-RPC: 16.73 ms
Result: XML won by: 39.53 ms (336.3% faster)


HANDLE BOOLEAN VALUE
==================================
JSON-RPC: 57.56 ms
XML-RPC: 16.95 ms
Result: XML won by: 40.61 ms (339.6% faster)


HANDLE DATETIME VALUE
==================================
JSON-RPC: 56.29 ms
XML-RPC: 16.28 ms
Result: XML won by: 40.01 ms (345.8% faster)


HANDLE COMPLEX OBJECTS
==================================
JSON-RPC: 59.26 ms
XML-RPC: 21.65 ms
Result: XML won by: 37.61 ms (273.8% faster)


FINAL RESULTS
==================================
JSON-RPC Average Time: 56.80 ms
JSON-RPC Total Time Taken: 9694.15 ms
XML-RPC Average Time: 17.99 ms
XML-RPC Total Time Taken: 5815.11 ms
Result: XML won by: 38.82 ms (315.8% faster)


To make sure I got accurate results, I restarted the server, and ran the 
test twice before pasting these numbers.

There seems to be a staggering difference between the XML-RPC and JSON-RPC 
implementations when models aren't used. For some reason, XML-RPC is running 
more than 300% faster, while the JSON-RPC remains the same.

I am going to play around with the models to see where that extra 
performance came from.

Reply via email to