Skip to content

Instantly share code, notes, and snippets.

@tos-kamiya
Last active November 3, 2019 15:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tos-kamiya/2c2c0736e91fa38b1938264527c2e402 to your computer and use it in GitHub Desktop.
Save tos-kamiya/2c2c0736e91fa38b1938264527c2e402 to your computer and use it in GitHub Desktop.
A micro benchmark of two RPC servers, mprpc and xmlrpc
from mprpc import RPCClient
client = RPCClient('127.0.0.1', 6000)
for x in range(100):
for y in range(1000):
assert client.call('sum', x, y) == x + y
import xmlrpc.client
client = xmlrpc.client.ServerProxy('http://%s:%d/' % ('127.0.0.1', 6000))
for x in range(100):
for y in range(1000):
assert client.sum(x, y) == x + y
import os
import signal
import gevent
from gevent.server import StreamServer
from mprpc import RPCServer
class SumServer(RPCServer):
def sum(self, x, y):
return x + y
print("svr process id: %d" % os.getpid())
gevent.signal(signal.SIGQUIT, gevent.kill)
server = StreamServer(('127.0.0.1', 6000), SumServer())
thread = gevent.spawn(server.serve_forever)
thread.join()
import os
from xmlrpc.server import SimpleXMLRPCServer
class SumServer:
def sum(self, x, y):
return x + y
print("svr process id: %d" % os.getpid())
server = SimpleXMLRPCServer(('127.0.0.1', 6000), logRequests=False)
server.register_instance(SumServer())
server.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment