On Sep 14, 2011, at 10:25 AM, Ross Peoples wrote:

> 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:

I'm still puzzled by the anomalous JSON ADD time. How about dropping a second 
ADD call into the test, a little farther down? Ignoring the XML numbers, I 
don't see any reason for the JSON ADD to be slower than the other JSON calls. I 
think it's still a measurement artifact.

> 
> 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