diff options
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/examples/bench/plot_latency.py')
-rw-r--r-- | external_libs/python/pyzmq-14.7.0/examples/bench/plot_latency.py | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/examples/bench/plot_latency.py b/external_libs/python/pyzmq-14.7.0/examples/bench/plot_latency.py deleted file mode 100644 index f50ef295..00000000 --- a/external_libs/python/pyzmq-14.7.0/examples/bench/plot_latency.py +++ /dev/null @@ -1,84 +0,0 @@ -"""Plot latency data from messaging benchmarks. - -To generate the data for each library, I started the server and then did -the following for each client:: - - from xmlrpc_client import client - for i in range(9): - s = '0'*10**i - print s - %timeit client.echo(s) -""" - -from matplotlib.pylab import * - -rawdata = """# Data in milliseconds -Bytes JSONRPC PYRO XMLRPC pyzmq_copy pyzmq_nocopy -1 2.15 0.186 2.07 0.111 0.136 -10 2.49 0.187 1.87 0.115 0.137 -100 2.5 0.189 1.9 0.126 0.138 -1000 2.54 0.196 1.91 0.129 0.141 -10000 2.91 0.271 2.77 0.204 0.197 -100000 6.65 1.44 9.17 0.961 0.546 -1000000 50.2 15.8 81.5 8.39 2.25 -10000000 491 159 816 91.7 25.2 -100000000 5010 1560 8300 893 248 - -""" -with open('latency.csv','w') as f: - f.writelines(rawdata) - -data = csv2rec('latency.csv',delimiter='\t') - -loglog(data.bytes, data.xmlrpc*1000, label='XMLRPC') -loglog(data.bytes, data.jsonrpc*1000, label='JSONRPC') -loglog(data.bytes, data.pyro*1000, label='Pyro') -loglog(data.bytes, data.pyzmq_nocopy*1000, label='PyZMQ') -loglog(data.bytes, len(data.bytes)*[60], label='Ping') -legend(loc=2) -title('Latency') -xlabel('Number of bytes') -ylabel('Round trip latency ($\mu s$)') -grid(True) -show() -savefig('latency.png') - -clf() - -semilogx(data.bytes, 1000/data.xmlrpc, label='XMLRPC') -semilogx(data.bytes, 1000/data.jsonrpc, label='JSONRPC') -semilogx(data.bytes, 1000/data.pyro, label='Pyro') -semilogx(data.bytes, 1000/data.pyzmq_nocopy, label='PyZMQ') -legend(loc=1) -xlabel('Number of bytes') -ylabel('Message/s') -title('Message Throughput') -grid(True) -show() -savefig('msgs_sec.png') - -clf() - -loglog(data.bytes, 1000/data.xmlrpc, label='XMLRPC') -loglog(data.bytes, 1000/data.jsonrpc, label='JSONRPC') -loglog(data.bytes, 1000/data.pyro, label='Pyro') -loglog(data.bytes, 1000/data.pyzmq_nocopy, label='PyZMQ') -legend(loc=3) -xlabel('Number of bytes') -ylabel('Message/s') -title('Message Throughput') -grid(True) -show() -savefig('msgs_sec_log.png') - -clf() - -semilogx(data.bytes, data.pyro/data.pyzmq_nocopy, label="No-copy") -semilogx(data.bytes, data.pyro/data.pyzmq_copy, label="Copy") -xlabel('Number of bytes') -ylabel('Ratio throughputs') -title('PyZMQ Throughput/Pyro Throughput') -grid(True) -legend(loc=2) -show() -savefig('msgs_sec_ratio.png') |