Skip to content

Conversation

@IgorFedchenko
Copy link
Contributor

To start work on issue #3328 we need to be able to measure Akka.IO.Tcp throughput before and after migration to System.IO.Pipelines and compare.

This PR adds benchmark as a simple client-server communication, exchanging with different number of messages with different payload sizes.

@IgorFedchenko
Copy link
Contributor Author

I am making 100 iterations per parameters combination, and two values per parameter. As you can see increasing message count gives linear increase of time consumed (I have also tried bigger values), and payload almost does not change time (which is pretty understandable in localhost networking).

Here is what I am getting on my local machine right now:

                    Method | MessageCount | MessageLength |      Mean |     Error |    StdDev |    Median | Allocated |
-------------------------- |------------- |-------------- |----------:|----------:|----------:|----------:|----------:|
 ClientServerCommunication |          100 |            10 |  42.54 ms | 2.7769 ms |  8.188 ms |  40.55 ms |       0 B |
 ClientServerCommunication |          100 |           100 |  40.98 ms | 0.6515 ms |  1.921 ms |  40.31 ms |       0 B |
 ClientServerCommunication |         1000 |            10 | 388.77 ms | 8.4383 ms | 24.881 ms | 380.52 ms |       0 B |
 ClientServerCommunication |         1000 |           100 | 377.30 ms | 3.9668 ms | 11.696 ms | 373.36 ms |       0 B |

@Aaronontheweb
Copy link
Member

So ~380ms for 1000 round trips?

@Aaronontheweb Aaronontheweb merged commit 0799075 into akkadotnet:dev Oct 31, 2019
@IgorFedchenko
Copy link
Contributor Author

So ~380ms for 1000 round trips?

Yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants