Skip to content
Snippets Groups Projects
Commit 4622a828 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

benchmark/get: improve ploting

parent bd72c646
Branches
Tags
No related merge requests found
......@@ -273,13 +273,11 @@ class DhtNetwork(object):
@staticmethod
def run_node(ip4, ip6, p, bootstrap=[], is_bootstrap=False):
DhtNetwork.log("run_node", ip4, ip6, p, bootstrap)
id = Identity()
#id.generate("dhtbench"+str(p), Identity(), 1024)
n = DhtRunner()
n.run(id, ipv4=ip4 if ip4 else "", ipv6=ip6 if ip6 else "", port=p, is_bootstrap=is_bootstrap)
n.run(ipv4=ip4 if ip4 else "", ipv6=ip6 if ip6 else "", port=p, is_bootstrap=is_bootstrap)
for b in bootstrap:
n.bootstrap(b[0], b[1])
#plt.pause(0.02)
time.sleep(.01)
return ((ip4, ip6, p), n, id)
@staticmethod
......@@ -387,11 +385,11 @@ class DhtNetwork(object):
if n == l:
return
if n > l:
DhtNetwork.log("Launching", n-l, "nodes")
DhtNetwork.log("Launching", n-l, "nodes", self.ip4, self.ip6)
for i in range(l, n):
self.launch_node()
else:
DhtNetwork.log("Ending", l-n, "nodes")
DhtNetwork.log("Ending", l-n, "nodes", self.ip4, self.ip6)
#random.shuffle(self.nodes)
for i in range(n, l):
self.end_node()
......
......@@ -636,7 +636,7 @@ class PerformanceTest(DhtFeatureTest):
hax.set_ylim(0, 2)
# let the network stabilise
plt.pause(60)
plt.pause(20)
#start = time.time()
times = []
......@@ -649,7 +649,7 @@ class PerformanceTest(DhtFeatureTest):
DhtNetwork.log("found", v)
return True
def donecb(ok, nodes):
def donecb(ok, nodes, start):
nonlocal bootstrap, lock, done, times
t = time.time()-start
with lock:
......@@ -665,7 +665,10 @@ class PerformanceTest(DhtFeatureTest):
l = lines.pop()
l.remove()
del l
lines = plt.plot(times, color='blue')
if len(times) > 1:
n, bins, lines = hax.hist(times, 100, normed=1, histtype='stepfilled', color='g')
hax.set_ylim(min(n), max(n))
lines.extend(lax.plot(times, color='blue'))
plt.draw()
def run_get():
......@@ -686,12 +689,12 @@ class PerformanceTest(DhtFeatureTest):
DhtNetwork.log("Getting 50 random hashes succesively.")
for i in range(50):
with lock:
done += 1
start = time.time()
bootstrap.front().get(InfoHash.getRandom(), getcb, donecb)
for _ in range(1):
run_get()
while done > 0:
lock.wait()
update_plot()
plt.pause(.1)
update_plot()
print("Took", np.sum(times), "mean", np.mean(times), "std", np.std(times), "min", np.min(times), "max", np.max(times))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment