diff --git a/src/benchmark.py b/src/benchmark.py --- a/src/benchmark.py +++ b/src/benchmark.py @@ -1,4 +1,6 @@ from time import time +import socket +import threading from hashtree import HashTree @@ -44,13 +46,73 @@ def lessSelectedRead(): def shortSockets(): - pass + def _server(): + serverSock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) + serverSock.bind(("",12329)) + serverSock.listen(1) + + for i in range(10000): + sock, address = serverSock.accept() + with sock.makefile(mode="rb") as fr, sock.makefile(mode="wb") as fw: + fr.readline() + sock.shutdown(socket.SHUT_RDWR) + sock.close() + serverSock.close() + + def _client(): + for i in range(10000): + sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) + sock.connect(("127.0.0.1", 12329)) + with sock.makefile(mode="rb") as fr, sock.makefile(mode="wb") as fw: + fw.write(b"x"*4096+b"\n") + fw.flush() + sock.shutdown(socket.SHUT_RDWR) + sock.close() + + s=threading.Thread(target=_server) + s.start() + c=threading.Thread(target=_client) + c.start() + s.join() + c.join() def longSockets(): - pass + def _server(): + serverSock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) + serverSock.bind(("",12330)) + serverSock.listen(1) + sock, address = serverSock.accept() + + with sock.makefile(mode="rb") as fr, sock.makefile(mode="wb") as fw: + for i in range(10000): + fr.readline() + + sock.shutdown(socket.SHUT_RDWR) + sock.close() + serverSock.close() + + def _client(): + sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) + sock.connect(("127.0.0.1", 12330)) + with sock.makefile(mode="rb") as fr, sock.makefile(mode="wb") as fw: + for i in range(10000): + fw.write(b"x"*4096+b"\n") + fw.flush() + sock.shutdown(socket.SHUT_RDWR) + sock.close() + + s=threading.Thread(target=_server) + s.start() + c=threading.Thread(target=_client) + c.start() + s.join() + c.join() # timeF(fullRead) # 85.40341448783875 s # timeF(selectedRead) # 6.774365186691284 s # timeF(lessSelectedRead) # 5.930811405181885 s + +# timeF(shortSockets) # 3.928339719772339 s +# timeF(longSockets) # 0.15576839447021484 s