Files @ 13603ac261f1
Branch filter:

Location: Morevna/src/benchmark.py - annotation

Laman
minor enhancements
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