The way it is now, the JSON runs first, then the XML. I never interleaved 
the two because I wanted to keep it simple. I can make the XML run first 
instead and do another test:

FINAL RESULTS
==================================
JSON-RPC Average Time: 59.91 ms
JSON-RPC Total Time Taken: 10007.80 ms
XML-RPC Average Time: 21.84 ms
XML-RPC Total Time Taken: 6201.04 ms
Result: XML won by: 38.07 ms (274.3% faster)

No change when I made XML run first, before JSON.


SUMMARY OF THREE ISSUES
========================

1. Auth and JSON-RPC
-------------------------------------

This problem stems from enabling Auth:

auth = Auth(db)
auth.define_tables()

Whenever Auth is enabled, the average time per request for XML-RPC and 
JSON-RPC are about 45 ms and 65 ms, respectively. However, whenever Auth is 
not enabled, these times change dramatically, but only for XML-RPC. The 
average time per request for XML-RPC and JSON-RPC is now about 20 ms and 60 
ms, respectively. The time it takes for JSON-RPC requests to run drops about 
5 ms per request, however, the time XML-RPC requests drops by 25 ms (more 
than half).


2. Unicode and JSON-RPC
---------------------------------------

As for the unicode issue, I noticed this as well. I also tried going back to 
simplejsonrpc, but that also returns strings as unicode. Are unicode strings 
a requirement of the JSON-RPC protocol?


3. SSL and web2py's simplejsonrpc
----------------------------------------------------

Finally, on a note about web2py's simplejsonrpc implementation, it runs much 
slower over SSL, possibly because it makes a new connection for each 
request, whereas jsonrpclib and xmlrpclib leave the connection open for 
subsequent requests.

Reply via email to