Files @ 9bfcb1e83e61
Branch filter:

Location: Morevna/src/benchmark.py - annotation

Laman
basic testing
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