From de343d654762ed044bcf46263a73e8d7510af829 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 14 Apr 2020 18:48:57 +0800 Subject: [PATCH] Add tool for GSO --- trunk/scripts/perf_gso.py | 35 +++++++++++++++++++++ trunk/src/app/srs_app_statistic.cpp | 48 ++++++++++++++--------------- 2 files changed, 59 insertions(+), 24 deletions(-) create mode 100644 trunk/scripts/perf_gso.py diff --git a/trunk/scripts/perf_gso.py b/trunk/scripts/perf_gso.py new file mode 100644 index 000000000..a1e329275 --- /dev/null +++ b/trunk/scripts/perf_gso.py @@ -0,0 +1,35 @@ +import urllib, sys, json + +url = "http://localhost:1985/api/v1/perf" +if len(sys.argv) > 1: + url = sys.argv[1] +print "Open %s"%(url) + +f = urllib.urlopen(url) +s = f.read() +f.close() +print "Repsonse %s"%(s) + +obj = json.loads(s) +keys = [3, 5, 9, 16, 32, 64, 128, 256, 1000] + +print "" +print("AVFrames"), +for k in keys: + k2 = 'lt_%s'%(k) + p = obj['data']['writev']['msgs'] + if k2 in p: + print(p[k2]), + else: + print(0), + +print "" +print("RTP-Packets"), +for k in keys: + k2 = 'lt_%s'%(k) + p = obj['data']['writev']['iovs'] + if k2 in p: + print(p[k2]), + else: + print(0), + diff --git a/trunk/src/app/srs_app_statistic.cpp b/trunk/src/app/srs_app_statistic.cpp index 3b122ff81..a58d5f57a 100644 --- a/trunk/src/app/srs_app_statistic.cpp +++ b/trunk/src/app/srs_app_statistic.cpp @@ -673,16 +673,16 @@ srs_error_t SrsStatistic::dumps_perf_writev(SrsJsonObject* obj) // h: <256 // i: <1000 // j: >=1000 - if (perf_msgs->a) p->set("lt_3", SrsJsonAny::integer(perf_msgs->a)); - if (perf_msgs->b) p->set("lt_5", SrsJsonAny::integer(perf_msgs->b)); - if (perf_msgs->c) p->set("lt_9", SrsJsonAny::integer(perf_msgs->c)); - if (perf_msgs->d) p->set("lt_16", SrsJsonAny::integer(perf_msgs->d)); - if (perf_msgs->e) p->set("lt_32", SrsJsonAny::integer(perf_msgs->e)); - if (perf_msgs->f) p->set("lt_64", SrsJsonAny::integer(perf_msgs->f)); - if (perf_msgs->g) p->set("lt_128", SrsJsonAny::integer(perf_msgs->g)); - if (perf_msgs->h) p->set("lt_256", SrsJsonAny::integer(perf_msgs->h)); - if (perf_msgs->i) p->set("lt_1000", SrsJsonAny::integer(perf_msgs->i)); - if (perf_msgs->j) p->set("gt_1000", SrsJsonAny::integer(perf_msgs->j)); + if (perf_msgs->a) p->set("lt_3", SrsJsonAny::integer(perf_msgs->a)); + if (perf_msgs->b) p->set("lt_5", SrsJsonAny::integer(perf_msgs->b)); + if (perf_msgs->c) p->set("lt_9", SrsJsonAny::integer(perf_msgs->c)); + if (perf_msgs->d) p->set("lt_16", SrsJsonAny::integer(perf_msgs->d)); + if (perf_msgs->e) p->set("lt_32", SrsJsonAny::integer(perf_msgs->e)); + if (perf_msgs->f) p->set("lt_64", SrsJsonAny::integer(perf_msgs->f)); + if (perf_msgs->g) p->set("lt_128", SrsJsonAny::integer(perf_msgs->g)); + if (perf_msgs->h) p->set("lt_256", SrsJsonAny::integer(perf_msgs->h)); + if (perf_msgs->i) p->set("lt_1000", SrsJsonAny::integer(perf_msgs->i)); + if (perf_msgs->j) p->set("gt_1000", SrsJsonAny::integer(perf_msgs->j)); } if (true) { @@ -700,16 +700,16 @@ srs_error_t SrsStatistic::dumps_perf_writev(SrsJsonObject* obj) // h: <256 // i: <1000 // j: >=1000 - if (perf_iovs->a) p->set("lt_3", SrsJsonAny::integer(perf_iovs->a)); - if (perf_iovs->b) p->set("lt_5", SrsJsonAny::integer(perf_iovs->b)); - if (perf_iovs->c) p->set("lt_9", SrsJsonAny::integer(perf_iovs->c)); - if (perf_iovs->d) p->set("lt_16", SrsJsonAny::integer(perf_iovs->d)); - if (perf_iovs->e) p->set("lt_32", SrsJsonAny::integer(perf_iovs->e)); - if (perf_iovs->f) p->set("lt_64", SrsJsonAny::integer(perf_iovs->f)); - if (perf_iovs->g) p->set("lt_128", SrsJsonAny::integer(perf_iovs->g)); - if (perf_iovs->h) p->set("lt_256", SrsJsonAny::integer(perf_iovs->h)); - if (perf_iovs->i) p->set("lt_1000", SrsJsonAny::integer(perf_iovs->i)); - if (perf_iovs->j) p->set("gt_1000", SrsJsonAny::integer(perf_iovs->j)); + if (perf_iovs->a) p->set("lt_3", SrsJsonAny::integer(perf_iovs->a)); + if (perf_iovs->b) p->set("lt_5", SrsJsonAny::integer(perf_iovs->b)); + if (perf_iovs->c) p->set("lt_9", SrsJsonAny::integer(perf_iovs->c)); + if (perf_iovs->d) p->set("lt_16", SrsJsonAny::integer(perf_iovs->d)); + if (perf_iovs->e) p->set("lt_32", SrsJsonAny::integer(perf_iovs->e)); + if (perf_iovs->f) p->set("lt_64", SrsJsonAny::integer(perf_iovs->f)); + if (perf_iovs->g) p->set("lt_128", SrsJsonAny::integer(perf_iovs->g)); + if (perf_iovs->h) p->set("lt_256", SrsJsonAny::integer(perf_iovs->h)); + if (perf_iovs->i) p->set("lt_1000", SrsJsonAny::integer(perf_iovs->i)); + if (perf_iovs->j) p->set("gt_1000", SrsJsonAny::integer(perf_iovs->j)); } return err; @@ -840,14 +840,14 @@ srs_error_t SrsStatistic::dumps_perf_gso(SrsJsonObject* obj) // h: <128 // i: <512 // j: >=512 - if (perf_gso->a) p->set("lt_2", SrsJsonAny::integer(perf_gso->a)); + if (perf_gso->a) p->set("lt_2", SrsJsonAny::integer(perf_gso->a)); if (perf_gso->b) p->set("lt_3", SrsJsonAny::integer(perf_gso->b)); - if (perf_gso->c) p->set("lt_6", SrsJsonAny::integer(perf_gso->c)); - if (perf_gso->d) p->set("lt_9", SrsJsonAny::integer(perf_gso->d)); + if (perf_gso->c) p->set("lt_6", SrsJsonAny::integer(perf_gso->c)); + if (perf_gso->d) p->set("lt_9", SrsJsonAny::integer(perf_gso->d)); if (perf_gso->e) p->set("lt_16", SrsJsonAny::integer(perf_gso->e)); if (perf_gso->f) p->set("lt_32", SrsJsonAny::integer(perf_gso->f)); if (perf_gso->g) p->set("lt_64", SrsJsonAny::integer(perf_gso->g)); - if (perf_gso->h) p->set("lt_128", SrsJsonAny::integer(perf_gso->h)); + if (perf_gso->h) p->set("lt_128", SrsJsonAny::integer(perf_gso->h)); if (perf_gso->i) p->set("lt_512", SrsJsonAny::integer(perf_gso->i)); if (perf_gso->j) p->set("gt_512", SrsJsonAny::integer(perf_gso->j)); }