void ConnMethodComparison() { gROOT->SetBatch(kTRUE); auto sel_filename = "./select_data_stats_1000desc_NOBLOCK_TIMEOUT_HARD.csv"; auto sel_df = ROOT::RDF::MakeCsvDataFrame(sel_filename, true, ';'); auto sel_nc = sel_df.Define("bandwidth", "( total_received_data/static_cast(1024) ) / (time/1000)").Define("bf_kb", "buffer_size/static_cast(1024)"); auto epoll_filename = "./epoll_data_stats_1000_TIMEOUT_HARD.csv"; auto epoll_df = ROOT::RDF::MakeCsvDataFrame(epoll_filename, true, ';'); auto epoll_nc = epoll_df.Define("bandwidth", "( total_received_data/static_cast(1024) ) / (time/1000)").Define("bf_kb", "buffer_size/static_cast(1024)"); auto canvas = new TCanvas("c", "c", 1400, 1000); //canvas->SetLogx(); canvas->SetGrid(); //canvas->SetLogy(); auto sel_g = sel_nc.Graph("bf_kb", "bandwidth"); sel_g->SetTitle("Select vs Epoll: 1000 clients (99.8% long timeouts);Buffer Size [kB];Bandwidth [kB/s]"); sel_g->SetName("sel"); sel_g->SetMarkerStyle(55); sel_g->SetMarkerSize(2); sel_g->SetMarkerColor(kBlue); sel_g->SetLineColor(kBlue); sel_g->SetLineWidth(2); //sel_g->GetXaxis()->SetLimits(-50,1000); sel_g->GetHistogram()->SetMinimum(0); sel_g->GetHistogram()->SetMaximum(7000); sel_g->DrawClone("ALP"); auto epoll_g = epoll_nc.Graph("bf_kb", "bandwidth"); epoll_g->SetTitle("Select vs Epoll: 1000 clients (99.8% long timeouts);Buffer Size [kB];Bandwidth [kB/s]"); epoll_g->SetName("epoll"); epoll_g->SetMarkerStyle(55); epoll_g->SetMarkerSize(2); epoll_g->SetMarkerColor(kRed); epoll_g->SetLineColor(kRed); epoll_g->SetLineWidth(2); //epoll_g->GetXaxis()->SetLimits(-50,1000); //epoll_g->GetHistogram()->SetMinimum(1e3); //epoll_g->GetHistogram()->SetMaximum(1e7); epoll_g->DrawClone("LP"); //gStyle->SetLegendTextSize(0.01); auto leg = new TLegend(0.60,0.42,0.86,0.57); leg->SetHeader("Connection method", "c"); leg->AddEntry("sel","Select","lp"); leg->AddEntry("epoll","Epoll","lp"); leg->Draw(); //canvas->BuildLegend(0.65,0.2,0.86,0.32, "Connection Method"); canvas->Print("Epoll_Select_1000_TIMEOUT_HARD.png"); gROOT->SetBatch(kFALSE); gApplication->Terminate(0); }