void TimeoutAropNoblock() { gROOT->SetBatch(kTRUE); auto f4 = "./mean_4_std_0_meantime_0ms_stddevtime_0ms.csv"; auto f4_df = ROOT::RDF::MakeCsvDataFrame(f4, true, ';'); auto f4_nc = f4_df.Define("bandwidth", "( tot_bytes/static_cast(1024) ) / tot_time_taken"); auto f4_noblock = "./mean_4_std_0_meantime_0ms_stddevtime_0ms_NODELAY.csv"; auto f4_noblock_df = ROOT::RDF::MakeCsvDataFrame(f4_noblock, true, ';'); auto f4_noblock_nc = f4_noblock_df.Define("bandwidth", "( tot_bytes/static_cast(1024) ) / tot_time_taken"); auto canvas = new TCanvas("c", "c", 2800, 1000); //canvas->SetLogx(); //canvas->SetGrid(); //canvas->SetLogy(); canvas->Divide(2,1); gStyle->SetPalette(1); canvas->cd(1); gPad->SetRightMargin(0.05); gPad->SetLeftMargin(0.15); gPad->SetGrid(); auto g4 = f4_nc.Graph("timeout_ms", "bandwidth"); g4->SetTitle("TCP_NODELAY Effect: bandwidth;Timeout [ms];Bandwidth [kB/s];"); g4->SetName("g4"); g4->SetMarkerStyle(55); g4->SetMarkerSize(2); g4->SetLineWidth(2); g4->GetHistogram()->SetMinimum(0); g4->GetHistogram()->SetMaximum(4500); g4->DrawClone("ALP PLC PMC"); auto g4_noblock = f4_noblock_nc.Graph("timeout_ms", "bandwidth"); g4_noblock->SetName("g4_noblock"); g4_noblock->SetMarkerStyle(55); g4_noblock->SetMarkerSize(2); g4_noblock->SetLineWidth(2); g4_noblock->DrawClone("LP PLC PMC"); auto leg = new TLegend(0.55,0.65,0.86,0.87); leg->AddEntry("g4","TCP_NODELAY not set","lp"); leg->AddEntry("g4_noblock","TCP_NODELAY set","lp"); leg->Draw(); canvas->cd(2); gPad->SetRightMargin(0.1); gPad->SetLeftMargin(0.1); gPad->SetLogy(); gPad->SetGrid(); auto g4_drop = f4_nc.Graph("timeout_ms", "drop_rate"); g4_drop->SetTitle("TCP_NODELAY Effect: drop rate;Timeout [ms];Fragment Drop Rate;"); g4_drop->SetName("g4_drop"); g4_drop->SetMarkerStyle(55); g4_drop->SetMarkerSize(2); g4_drop->SetLineWidth(2); g4_drop->GetHistogram()->SetMinimum(1e-11); g4_drop->GetHistogram()->SetMaximum(1e-5); g4_drop->DrawClone("ALP PLC PMC"); auto g4_drop_noblock = f4_noblock_nc.Graph("timeout_ms", "drop_rate"); g4_drop_noblock->SetTitle("TCP_NODELAY Effect: drop rate;Timeout [ms];Fragment Drop Rate;"); g4_drop_noblock->SetName("g4_drop_noblock"); g4_drop_noblock->SetMarkerStyle(55); g4_drop_noblock->SetMarkerSize(2); g4_drop_noblock->SetLineWidth(2); g4_drop_noblock->DrawClone("LP PLC PMC"); auto leg_drop = new TLegend(0.55,0.65,0.86,0.87); leg_drop->AddEntry("g4_drop","TCP_NODELAY not set","lp"); leg_drop->AddEntry("g4_drop_noblock","TCP_NODELAY set","lp"); leg_drop->Draw(); /* g1000->SetTitle("Bandwidth vs Timeout: Log;Timeout [ms];Bandwidth [kB/s]"); g1000->GetHistogram()->SetMinimum(1); g1000->GetHistogram()->SetMaximum(20000); g1000->DrawClone("ALP PLC PMC"); g500->DrawClone("LP PLC PMC"); g200->DrawClone("LP PLC PMC"); g100->DrawClone("LP PLC PMC"); g40->DrawClone("LP PLC PMC"); g4->DrawClone("LP PLC PMC"); leg->Draw();*/ //gStyle->SetLegendTextSize(0.01); //canvas->BuildLegend(0.65,0.2,0.86,0.32, "Connection Method"); canvas->Print("Nodelay.png"); gROOT->SetBatch(kFALSE); gApplication->Terminate(0); }