Files @ 75e070b6b447
Branch filter:

Location: Morevna/src/benchmark.py - annotation

Laman
refactored common client and server code into netnode
802cbad78f7d
2adb8e927e34
2adb8e927e34
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
802cbad78f7d
802cbad78f7d
802cbad78f7d
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
2adb8e927e34
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
802cbad78f7d
2adb8e927e34
2adb8e927e34
2adb8e927e34
from time import time
import socket
import threading

from hashtree import HashTree


def timeF(f):
	start=time()
	f()
	end=time()
	print((end-start),"s")


def fullRead():
	block=True
	with open("/home/laman/ext2.img",mode="rb") as f:
		while block:
			block=f.read(HashTree.BLOCK_SIZE)


def selectedRead():
	with open("/home/laman/blocks.txt") as f:
		blocks=[int(x) for x in f]
	with open("/home/laman/ext2.img",mode="rb") as f:
		i1=-1
		for i2 in blocks:
			if i1+1!=i2:
				f.seek(i2*HashTree.BLOCK_SIZE)
			block=f.read(HashTree.BLOCK_SIZE)
			i1=i2


def lessSelectedRead():
	with open("/home/laman/blocks.txt") as f:
		blocks=[int(x) for x in f]
	with open("/home/laman/ext2.img",mode="rb") as f:
		i1=-1
		for i2 in blocks:
			if i2<=i1+8:
				block=f.read(HashTree.BLOCK_SIZE*(i2-i1))
			else:
				f.seek(i2*HashTree.BLOCK_SIZE)
				block=f.read(HashTree.BLOCK_SIZE)
			i1=i2


def shortSockets():
	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():
	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