Loading README.md +5 −0 Original line number Diff line number Diff line # X-Lap: A Systems Approach for Cross-Layer Profiling and Latency Analysis for Cyber-Physical Networks ## Conventions `_T`: Timestamp (us precision) `_C`: Clockstamp `_D`: Duration (us precision) ## How to use X-lap? Loading xlap/analyse/__init__.py +5 −5 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ def trace(df,title,export=False): def box(df_data,export=False,title=None): ax = df_data.plot.box(vert=False,grid=True) fig=ax.get_figure() ax.set_yticklabels(list(map(lambda x: x.get_text().replace("Time", ""), ax.get_yticklabels()))) ax.set_yticklabels(list(map(lambda x: x.get_text().replace("_D", ""), ax.get_yticklabels()))) plt.xlabel("Time [us]") fig.set_size_inches(8, 4.5, forward=True) if export and title is not None: Loading @@ -73,17 +73,17 @@ def box(df_data,export=False,title=None): def describe_table(df): stats = df.describe() stats.drop(["count"],inplace=True) stats.columns = list(map(lambda x: x.replace("Time", ""), stats.columns)) stats.columns = list(map(lambda x: x.replace("_D", ""), stats.columns)) table = stats.to_latex(float_format=lambda x: "%.3f" % x) print(table) return stats def correlation(df_data,title="Correlation.pdf"): columns = list(["SenderTotalTime", columns = list(["Sender_D", "SendTime", "SenderIPCTime", "LinkTransmitTime", "ReceiverTotalTime", "Receiver_D", "ReceiverIPCTime", "HandlePacketTime", "FeedbackTime", Loading @@ -100,6 +100,6 @@ def correlation(df_data,title="Correlation.pdf"): fig2 = ax.get_figure() ax.set_ylabel("EndToEnd [us]") ax.margins(0.1,0.1) ax.set_xlabel("{} [us]".format(column.replace("Time", ""))) ax.set_xlabel("{} [us]".format(column.replace("_D", ""))) i += 1 fig.savefig(title) xlap/analyse/common.py +1 −1 Original line number Diff line number Diff line Loading @@ -17,4 +17,4 @@ def extract_durations(config): durations_send = [_dn(x) for x in durations if _filter(x, durations, "sender")] durations_recv = [_dn(x) for x in durations if _filter(x, durations, "receiver")] return ["EndToEndTime", "SenderTotalTime"] + durations_send + ["ReceiverTotalTime"] + durations_recv return ["EndToEndTime", "Sender_D"] + durations_send + ["Receiver_D"] + durations_recv xlap/analyse/jitter.py +1 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ def jitter_causes(df, export=False, file_name=None): ax = df_sum.plot.bar(x="Reason",y="Frequency",rot=45,grid=True,legend=False,color="black") fig=ax.get_figure() plt.ylabel("Frequency") ax.set_xticklabels(list(map(lambda x: x.get_text().replace("Time", ""), ax.get_xticklabels()))) ax.set_xticklabels(list(map(lambda x: x.get_text().replace("_D", ""), ax.get_xticklabels()))) fig.set_size_inches(8, 3, forward=True) if export: fig.savefig(file_name) Loading xlap/command_line.py +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ def main(): print("{} is not a known analysis task.".format(command)) continue df_data = evaluate(data_files["sender"], data_files["receiver"], stamps=config["stamps"], kind=0) df_data = evaluate(data_files["sender"], data_files["receiver"], config=config, kind=0) params = { "export": args.export} Loading Loading
README.md +5 −0 Original line number Diff line number Diff line # X-Lap: A Systems Approach for Cross-Layer Profiling and Latency Analysis for Cyber-Physical Networks ## Conventions `_T`: Timestamp (us precision) `_C`: Clockstamp `_D`: Duration (us precision) ## How to use X-lap? Loading
xlap/analyse/__init__.py +5 −5 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ def trace(df,title,export=False): def box(df_data,export=False,title=None): ax = df_data.plot.box(vert=False,grid=True) fig=ax.get_figure() ax.set_yticklabels(list(map(lambda x: x.get_text().replace("Time", ""), ax.get_yticklabels()))) ax.set_yticklabels(list(map(lambda x: x.get_text().replace("_D", ""), ax.get_yticklabels()))) plt.xlabel("Time [us]") fig.set_size_inches(8, 4.5, forward=True) if export and title is not None: Loading @@ -73,17 +73,17 @@ def box(df_data,export=False,title=None): def describe_table(df): stats = df.describe() stats.drop(["count"],inplace=True) stats.columns = list(map(lambda x: x.replace("Time", ""), stats.columns)) stats.columns = list(map(lambda x: x.replace("_D", ""), stats.columns)) table = stats.to_latex(float_format=lambda x: "%.3f" % x) print(table) return stats def correlation(df_data,title="Correlation.pdf"): columns = list(["SenderTotalTime", columns = list(["Sender_D", "SendTime", "SenderIPCTime", "LinkTransmitTime", "ReceiverTotalTime", "Receiver_D", "ReceiverIPCTime", "HandlePacketTime", "FeedbackTime", Loading @@ -100,6 +100,6 @@ def correlation(df_data,title="Correlation.pdf"): fig2 = ax.get_figure() ax.set_ylabel("EndToEnd [us]") ax.margins(0.1,0.1) ax.set_xlabel("{} [us]".format(column.replace("Time", ""))) ax.set_xlabel("{} [us]".format(column.replace("_D", ""))) i += 1 fig.savefig(title)
xlap/analyse/common.py +1 −1 Original line number Diff line number Diff line Loading @@ -17,4 +17,4 @@ def extract_durations(config): durations_send = [_dn(x) for x in durations if _filter(x, durations, "sender")] durations_recv = [_dn(x) for x in durations if _filter(x, durations, "receiver")] return ["EndToEndTime", "SenderTotalTime"] + durations_send + ["ReceiverTotalTime"] + durations_recv return ["EndToEndTime", "Sender_D"] + durations_send + ["Receiver_D"] + durations_recv
xlap/analyse/jitter.py +1 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ def jitter_causes(df, export=False, file_name=None): ax = df_sum.plot.bar(x="Reason",y="Frequency",rot=45,grid=True,legend=False,color="black") fig=ax.get_figure() plt.ylabel("Frequency") ax.set_xticklabels(list(map(lambda x: x.get_text().replace("Time", ""), ax.get_xticklabels()))) ax.set_xticklabels(list(map(lambda x: x.get_text().replace("_D", ""), ax.get_xticklabels()))) fig.set_size_inches(8, 3, forward=True) if export: fig.savefig(file_name) Loading
xlap/command_line.py +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ def main(): print("{} is not a known analysis task.".format(command)) continue df_data = evaluate(data_files["sender"], data_files["receiver"], stamps=config["stamps"], kind=0) df_data = evaluate(data_files["sender"], data_files["receiver"], config=config, kind=0) params = { "export": args.export} Loading