Loading .gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,4 @@ tests/__pycache__/ MANIFEST prrt.cpython*.so prrt.so .ipynb_checkpoints/ eval.ipynb 0 → 100644 +16 −0 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` python import pandas as pd ``` %% Cell type:code id: tags: ``` python pd.read_csv("eval.csv") ``` %% Cell type:code id: tags: ``` python ``` eval.py 0 → 100644 +21 −0 Original line number Diff line number Diff line import sys sys.path.insert(0, "./build") import tests.perf as perf def run_setup_and_report(setup): results = setup.run() print("Setup:\n ", setup) print("Results:\n " + str(results).replace("\n","\n ")) results.export() if __name__ == "__main__": # Packet Count Works: 2^15; Segfault at: 2^16 # TODO: support multiple tests via proper socket termination setups = [ perf.TestSetup(packets=2**17,delay=1,loss=0,reorder=0,duplicate=0) ] for setup in setups: run_setup_and_report(setup) prrt/proto/socket.c +0 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,6 @@ PrrtSocket *PrrtSocket_create(prrtByteCount_t maximum_payload_size, prrtTimedelt s->sequenceNumberRedundancy = 1; s->sequenceNumberFeedback = 1; check(target_delay_us < HALF_TIMESTAMP, "Specify target delay between 0 and %i", HALF_TIMESTAMP-1) s->applicationConstraints = PrrtApplicationConstraints_create(target_delay_us); Loading tests/perf/__init__.py +8 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import datetime import threading import prrt import numpy as np import pandas as pd import math class ReceiverThread(threading.Thread): Loading Loading @@ -89,6 +90,13 @@ class TestResults(object): return "%s\n%s\n%s\n%s" % (loss, duplicates, delays, losses) def export(self): df = pd.DataFrame({ "delays": self.delays }, index=range(self.packetsSent)) df.to_csv("eval.csv") class TestSetup(object): def __init__(self, packets=20, packet_interval=0.0001, delay=1, delay_variation=0, delay_correlation=0, loss=0, loss_correlation=0, duplicate=0, reorder=0, reorder_correlation=0, loss_pattern=True): self.packets = packets Loading Loading
.gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,4 @@ tests/__pycache__/ MANIFEST prrt.cpython*.so prrt.so .ipynb_checkpoints/
eval.ipynb 0 → 100644 +16 −0 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` python import pandas as pd ``` %% Cell type:code id: tags: ``` python pd.read_csv("eval.csv") ``` %% Cell type:code id: tags: ``` python ```
eval.py 0 → 100644 +21 −0 Original line number Diff line number Diff line import sys sys.path.insert(0, "./build") import tests.perf as perf def run_setup_and_report(setup): results = setup.run() print("Setup:\n ", setup) print("Results:\n " + str(results).replace("\n","\n ")) results.export() if __name__ == "__main__": # Packet Count Works: 2^15; Segfault at: 2^16 # TODO: support multiple tests via proper socket termination setups = [ perf.TestSetup(packets=2**17,delay=1,loss=0,reorder=0,duplicate=0) ] for setup in setups: run_setup_and_report(setup)
prrt/proto/socket.c +0 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,6 @@ PrrtSocket *PrrtSocket_create(prrtByteCount_t maximum_payload_size, prrtTimedelt s->sequenceNumberRedundancy = 1; s->sequenceNumberFeedback = 1; check(target_delay_us < HALF_TIMESTAMP, "Specify target delay between 0 and %i", HALF_TIMESTAMP-1) s->applicationConstraints = PrrtApplicationConstraints_create(target_delay_us); Loading
tests/perf/__init__.py +8 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import datetime import threading import prrt import numpy as np import pandas as pd import math class ReceiverThread(threading.Thread): Loading Loading @@ -89,6 +90,13 @@ class TestResults(object): return "%s\n%s\n%s\n%s" % (loss, duplicates, delays, losses) def export(self): df = pd.DataFrame({ "delays": self.delays }, index=range(self.packetsSent)) df.to_csv("eval.csv") class TestSetup(object): def __init__(self, packets=20, packet_interval=0.0001, delay=1, delay_variation=0, delay_correlation=0, loss=0, loss_correlation=0, duplicate=0, reorder=0, reorder_correlation=0, loss_pattern=True): self.packets = packets Loading