Changeset - 2adb8e927e34
[Not reviewed]
default
0 2 0
Laman - 8 years ago 2017-06-05 22:17:43

network benchmark
2 files changed with 66 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/benchmark.py
Show inline comments
 
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
src/server.py
Show inline comments
 
@@ -7,8 +7,8 @@ import config as conf
 

	
 

	
 
class Connection:
 
	def __init__(self,server_socket):
 
		self.socket, address = server_socket.accept()
 
	def __init__(self,serverSocket):
 
		self.socket, address = serverSocket.accept()
 
		log.info('Connected by {0}'.format(address))
 
		fr=self.socket.makefile(mode="rb")
 
		fw=self.socket.makefile(mode="wb")
0 comments (0 inline, 0 general)