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.