mirror of
https://github.com/vacp2p/research.git
synced 2025-02-24 04:08:15 +00:00
case 2 and some stats
This commit is contained in:
parent
b7a97e977f
commit
092a749e43
@ -8,8 +8,21 @@ class bcolors:
|
|||||||
BOLD = '\033[1m'
|
BOLD = '\033[1m'
|
||||||
UNDERLINE = '\033[4m'
|
UNDERLINE = '\033[4m'
|
||||||
|
|
||||||
|
# https://web.archive.org/web/20111010015624/http://blogmag.net/blog/read/38/Print_human_readable_file_size
|
||||||
|
def sizeof_fmt(num):
|
||||||
|
for x in ['bytes','KB','MB','GB','TB']:
|
||||||
|
if num < 1024.0:
|
||||||
|
return "%.0f%s" % (num, x)
|
||||||
|
num /= 1024.0
|
||||||
|
|
||||||
|
def magnitude_fmt(num):
|
||||||
|
for x in ['','k','m']:
|
||||||
|
if num < 1000:
|
||||||
|
return "%d%s" % (num, x)
|
||||||
|
num /= 1000
|
||||||
|
|
||||||
# We assume an envelope is 1kb
|
# We assume an envelope is 1kb
|
||||||
envelope_size = 1
|
envelope_size = 1024
|
||||||
|
|
||||||
# 100, 10k, 1m - jumping two orders of magnitude
|
# 100, 10k, 1m - jumping two orders of magnitude
|
||||||
n_users = 10000
|
n_users = 10000
|
||||||
@ -47,29 +60,69 @@ def bandwidth_usage(n_users):
|
|||||||
|
|
||||||
# Offline proportion
|
# Offline proportion
|
||||||
|
|
||||||
# Case 1: only receiving messages meant for you
|
|
||||||
load = envelope_size * envelopes_per_message * \
|
|
||||||
received_messages_per_day
|
|
||||||
|
|
||||||
if load < 10000:
|
def case1():
|
||||||
color_level = bcolors.OKBLUE
|
# Case 1: only receiving messages meant for you
|
||||||
elif load < 30000:
|
load = envelope_size * envelopes_per_message * \
|
||||||
color_level = bcolors.OKGREEN
|
received_messages_per_day
|
||||||
elif load < 100000:
|
|
||||||
color_level = bcolors.WARNING
|
|
||||||
else:
|
|
||||||
color_level = bcolors.FAIL
|
|
||||||
|
|
||||||
print bcolors.HEADER + "Case 1. Only receiving messages meant for you" + bcolors.ENDC
|
if load < (1024 * 1000 * 10):
|
||||||
print ""
|
color_level = bcolors.OKBLUE
|
||||||
print "Assumptions:"
|
elif load < 30000:
|
||||||
print "- A1. Envelope size (static): " + str(envelope_size) + "kb"
|
color_level = bcolors.OKGREEN
|
||||||
print "- A2. Envelopes / message (static): " + str(envelopes_per_message)
|
elif load < 100000:
|
||||||
print "- A3. Received messages / day (static): " + str(received_messages_per_day)
|
color_level = bcolors.WARNING
|
||||||
print ""
|
else:
|
||||||
print color_level + "Receiving bandwidth is " + str(load/1000) + "mb/day" + bcolors.ENDC
|
color_level = bcolors.FAIL
|
||||||
print ""
|
|
||||||
|
|
||||||
# Case 2: receiving all messages
|
print bcolors.HEADER + "\nCase 1. Only receiving messages meant for you" + bcolors.ENDC
|
||||||
|
print ""
|
||||||
|
print "Assumptions:"
|
||||||
|
print "- A1. Envelope size (static): " + str(envelope_size) + "kb"
|
||||||
|
print "- A2. Envelopes / message (static): " + str(envelopes_per_message)
|
||||||
|
print "- A3. Received messages / day (static): " + str(received_messages_per_day)
|
||||||
|
print "- A4. Only receiving messages meant for you"
|
||||||
|
print ""
|
||||||
|
print color_level + "For N users, receiving bandwidth is " + sizeof_fmt(load) + "/day" + bcolors.ENDC
|
||||||
|
print ""
|
||||||
|
print("------------------------------------------------------------")
|
||||||
|
|
||||||
# print bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC
|
def case2():
|
||||||
|
# Case 2: receiving all messages
|
||||||
|
|
||||||
|
def load_users(n_users):
|
||||||
|
return envelope_size * envelopes_per_message * \
|
||||||
|
received_messages_per_day * n_users
|
||||||
|
|
||||||
|
def color(n_users):
|
||||||
|
load = load_users(n_users)
|
||||||
|
if load < 10000:
|
||||||
|
color_level = bcolors.OKBLUE
|
||||||
|
elif load < 30000:
|
||||||
|
color_level = bcolors.OKGREEN
|
||||||
|
elif load < 100000:
|
||||||
|
color_level = bcolors.WARNING
|
||||||
|
else:
|
||||||
|
color_level = bcolors.FAIL
|
||||||
|
return color_level
|
||||||
|
|
||||||
|
def usage_str(n_users):
|
||||||
|
return color(n_users) + "For " + magnitude_fmt(n_users) + " users, receiving bandwidth is " + sizeof_fmt(load_users(n_users)) + "/day" + bcolors.ENDC
|
||||||
|
|
||||||
|
print bcolors.HEADER + "\nCase 2. Receiving messages for everyone" + bcolors.ENDC
|
||||||
|
print ""
|
||||||
|
print "Assumptions:"
|
||||||
|
print "- A1. Envelope size (static): " + str(envelope_size) + "kb"
|
||||||
|
print "- A2. Envelopes / message (static): " + str(envelopes_per_message)
|
||||||
|
print "- A3. Received messages / day (static): " + str(received_messages_per_day)
|
||||||
|
print "- A4. Received messages for everyone"
|
||||||
|
print ""
|
||||||
|
print usage_str(100)
|
||||||
|
print usage_str(100 * 100)
|
||||||
|
print usage_str(100 * 100 * 100)
|
||||||
|
print ""
|
||||||
|
print("------------------------------------------------------------")
|
||||||
|
|
||||||
|
|
||||||
|
case1()
|
||||||
|
case2()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user