diff --git a/testers/test_handler.c b/testers/test_handler.c index e15d36a..ba50ac1 100644 --- a/testers/test_handler.c +++ b/testers/test_handler.c @@ -11,10 +11,28 @@ static TR_EventDone testHandlerHeartbeat(TR_EventHandler this, TR_Event event) { - printf("%zd beat(s) since last beat / handled: %llu/s\n", + double size = (double)((TestHandler)this)->size; + double size_msg = ((TestHandler)this)->size + ? size / ((TestHandler)this)->handled + : 0.0; + int div_count = 0; + + while (size > 1024. && div_count != 'G') { + size /= 1024.; + switch (div_count) { + case 0: div_count = 'K'; break; + case 'K': div_count = 'M'; break; + case 'M': div_count = 'G'; break; + } + } + + printf("%zd beat(s) since last beat / " + "handled: %llu msg/s %4.2lf %cBytes/s %4.0lf Bytes/msg\n", ((TR_EventDispatcher)event->subject)->n_beats, - ((TestHandler)this)->handled); + ((TestHandler)this)->handled, + size, div_count, size_msg); ((TestHandler)this)->handled = 0; + ((TestHandler)this)->size = 0; return TR_EVENT_DONE; } @@ -23,9 +41,11 @@ static TR_EventDone testHandlerNewMessage(TR_EventHandler this, TR_Event event) { - TR_Event _event; + TR_Event _event; + TR_ProtoMessageRaw message = event->data; ((TestHandler)this)->handled++; + ((TestHandler)this)->size += ((TR_SizedData)message->data)->size; _event = TR_eventSubjectEmit( event->subject, diff --git a/testers/test_handler.h b/testers/test_handler.h index 61111b6..3db405a 100644 --- a/testers/test_handler.h +++ b/testers/test_handler.h @@ -9,6 +9,7 @@ TR_CLASS(TestHandler) { TR_EXTENDS(TR_EventHandler); unsigned long long handled; + unsigned long long size; }; TR_INSTANCE_INIT(TestHandler); TR_CLASSVARS_DECL(TestHandler) { diff --git a/testers/testclient.sh b/testers/testclient.sh index 1b235d2..1bead11 100755 --- a/testers/testclient.sh +++ b/testers/testclient.sh @@ -1,8 +1,8 @@ #!/bin/sh BS=$((128*1024)) -COUNT=10000 -CONCURENT=200 +COUNT=1000000 +CONCURENT=2 IP="192.168.2.13" pids="" i=0