Commit 93ccec2fef14e069c30fb5c97bf5b23178e612bf
1 parent
b7d83002
show some information about the bytes per second throughput. Currently I manage …
…around 1.1 GBytes on a loopback device which sounds not to bad, but is only about 1/4 of the throughput iperf shows me... but this might be related to nc... I will see this when I have written my own client.
Showing
3 changed files
with
26 additions
and
5 deletions
| @@ -11,10 +11,28 @@ static | @@ -11,10 +11,28 @@ static | ||
| 11 | TR_EventDone | 11 | TR_EventDone |
| 12 | testHandlerHeartbeat(TR_EventHandler this, TR_Event event) | 12 | testHandlerHeartbeat(TR_EventHandler this, TR_Event event) |
| 13 | { | 13 | { |
| 14 | - printf("%zd beat(s) since last beat / handled: %llu/s\n", | 14 | + double size = (double)((TestHandler)this)->size; |
| 15 | + double size_msg = ((TestHandler)this)->size | ||
| 16 | + ? size / ((TestHandler)this)->handled | ||
| 17 | + : 0.0; | ||
| 18 | + int div_count = 0; | ||
| 19 | + | ||
| 20 | + while (size > 1024. && div_count != 'G') { | ||
| 21 | + size /= 1024.; | ||
| 22 | + switch (div_count) { | ||
| 23 | + case 0: div_count = 'K'; break; | ||
| 24 | + case 'K': div_count = 'M'; break; | ||
| 25 | + case 'M': div_count = 'G'; break; | ||
| 26 | + } | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + printf("%zd beat(s) since last beat / " | ||
| 30 | + "handled: %llu msg/s %4.2lf %cBytes/s %4.0lf Bytes/msg\n", | ||
| 15 | ((TR_EventDispatcher)event->subject)->n_beats, | 31 | ((TR_EventDispatcher)event->subject)->n_beats, |
| 16 | - ((TestHandler)this)->handled); | 32 | + ((TestHandler)this)->handled, |
| 33 | + size, div_count, size_msg); | ||
| 17 | ((TestHandler)this)->handled = 0; | 34 | ((TestHandler)this)->handled = 0; |
| 35 | + ((TestHandler)this)->size = 0; | ||
| 18 | 36 | ||
| 19 | return TR_EVENT_DONE; | 37 | return TR_EVENT_DONE; |
| 20 | } | 38 | } |
| @@ -23,9 +41,11 @@ static | @@ -23,9 +41,11 @@ static | ||
| 23 | TR_EventDone | 41 | TR_EventDone |
| 24 | testHandlerNewMessage(TR_EventHandler this, TR_Event event) | 42 | testHandlerNewMessage(TR_EventHandler this, TR_Event event) |
| 25 | { | 43 | { |
| 26 | - TR_Event _event; | 44 | + TR_Event _event; |
| 45 | + TR_ProtoMessageRaw message = event->data; | ||
| 27 | 46 | ||
| 28 | ((TestHandler)this)->handled++; | 47 | ((TestHandler)this)->handled++; |
| 48 | + ((TestHandler)this)->size += ((TR_SizedData)message->data)->size; | ||
| 29 | 49 | ||
| 30 | _event = TR_eventSubjectEmit( | 50 | _event = TR_eventSubjectEmit( |
| 31 | event->subject, | 51 | event->subject, |
| @@ -9,6 +9,7 @@ | @@ -9,6 +9,7 @@ | ||
| 9 | TR_CLASS(TestHandler) { | 9 | TR_CLASS(TestHandler) { |
| 10 | TR_EXTENDS(TR_EventHandler); | 10 | TR_EXTENDS(TR_EventHandler); |
| 11 | unsigned long long handled; | 11 | unsigned long long handled; |
| 12 | + unsigned long long size; | ||
| 12 | }; | 13 | }; |
| 13 | TR_INSTANCE_INIT(TestHandler); | 14 | TR_INSTANCE_INIT(TestHandler); |
| 14 | TR_CLASSVARS_DECL(TestHandler) { | 15 | TR_CLASSVARS_DECL(TestHandler) { |
Please
register
or
login
to post a comment