Files
@ 870c5c6c334f
Branch filter:
Location: Morevna/src/benchmark.py - annotation
870c5c6c334f
2.7 KiB
text/x-python
reacquiring old locks
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | 802cbad78f7d 2adb8e927e34 2adb8e927e34 802cbad78f7d 802cbad78f7d 802cbad78f7d 802cbad78f7d 6a0ab4fe9f5e 5c80ca07f00c 802cbad78f7d 5c80ca07f00c 5c80ca07f00c 802cbad78f7d 802cbad78f7d 6a0ab4fe9f5e 5c80ca07f00c 5c80ca07f00c 802cbad78f7d 5c80ca07f00c 802cbad78f7d 802cbad78f7d 6a0ab4fe9f5e 802cbad78f7d 5c80ca07f00c 5c80ca07f00c 5c80ca07f00c 802cbad78f7d 802cbad78f7d 802cbad78f7d 5c80ca07f00c 5c80ca07f00c 802cbad78f7d 802cbad78f7d 6a0ab4fe9f5e 802cbad78f7d 5c80ca07f00c 5c80ca07f00c 5c80ca07f00c 802cbad78f7d 802cbad78f7d 5c80ca07f00c 802cbad78f7d 802cbad78f7d 5c80ca07f00c 5c80ca07f00c 802cbad78f7d 802cbad78f7d 6a0ab4fe9f5e 2adb8e927e34 6a0ab4fe9f5e 6a0ab4fe9f5e 6a0ab4fe9f5e 2adb8e927e34 2adb8e927e34 6a0ab4fe9f5e 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 6a0ab4fe9f5e 2adb8e927e34 2adb8e927e34 2adb8e927e34 5c80ca07f00c 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 5c80ca07f00c 2adb8e927e34 5c80ca07f00c 2adb8e927e34 2adb8e927e34 2adb8e927e34 802cbad78f7d 802cbad78f7d 6a0ab4fe9f5e 2adb8e927e34 6a0ab4fe9f5e 6a0ab4fe9f5e 6a0ab4fe9f5e 6a0ab4fe9f5e 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 2adb8e927e34 6a0ab4fe9f5e 2adb8e927e34 2adb8e927e34 5c80ca07f00c 2adb8e927e34 2adb8e927e34 2adb8e927e34 6a0ab4fe9f5e 6a0ab4fe9f5e 2adb8e927e34 2adb8e927e34 2adb8e927e34 5c80ca07f00c 2adb8e927e34 5c80ca07f00c 2adb8e927e34 2adb8e927e34 2adb8e927e34 802cbad78f7d 802cbad78f7d 6a0ab4fe9f5e 6a0ab4fe9f5e 6a0ab4fe9f5e 2adb8e927e34 6a0ab4fe9f5e 6a0ab4fe9f5e | from time import time
import socket
import threading
from hashtree import HashTree
def time_f(f):
start = time()
f()
end = time()
print((end-start), "s")
def full_read():
block = True
with open("/home/laman/ext2.img", mode="rb") as f:
while block:
block = f.read(HashTree.BLOCK_SIZE)
def selected_read():
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 less_selected_read():
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 short_sockets():
def _server():
server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_sock.bind(("", 12329))
server_sock.listen(1)
for i in range(10000):
sock, address = server_sock.accept()
with sock.makefile(mode="rb") as fr, sock.makefile(mode="wb") as fw:
fr.readline()
sock.shutdown(socket.SHUT_RDWR)
sock.close()
server_sock.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 long_sockets():
def _server():
server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_sock.bind(("", 12330))
server_sock.listen(1)
sock, address = server_sock.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()
server_sock.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()
# time_f(full_read) # 85.40341448783875 s
# time_f(selected_read) # 6.774365186691284 s
# time_f(less_selected_read) # 5.930811405181885 s
# time_f(short_sockets) # 3.928339719772339 s
# time_f(long_sockets) # 0.15576839447021484 s
|