Skip to content
F# Async Socket Benchmark
C HTML JavaScript C++ CSS F# CMake
Branch: master
Clone or download
Latest commit 9a603f0 Aug 3, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
fs-async-server F# Async Server Benchmark Aug 3, 2019
uv-hammer F# Async Server Benchmark Aug 3, 2019
README.md Update documentation Aug 3, 2019

README.md

F# Async Socket Benchmark

The purpose of this project is to measure the latecny of async sockets in F#/.Net (on Linux, using dotnet core)

Thanks to Adgear/Samsung Ads for making it public

The project consists of two parts: the hammer and the server. The server is using async sockets. the hammer is half duplex transponder, sending packets and measuring the round trip time to get an answer. Async hammer, can yield up to 10x more packets, but requires heavy book-keeping on the side of the client.

Dependencies

on Ubuntu (for the hammer):

sudo apt-get install libuv1-dev

Building

Hammer:

$ cd uv-hammer
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
$ make install

fs-async-server:

$ cd fs-async-server
$ dotnet build

Running

First run the server:

fs-async-server$ dotnet run
Started listening on port 55555
Waiting for key to exit

Then run the hammer from another server:

 $ uv-hammer -i 123.123.123.123 -p 55555 -t 4 -c 4 -n 8
sending: CB 1234:4567 1234:4567 1234:4567 1234:4567 1234:4567 1234:4567 1234:4567 1234:4567
request per packet: 8
Connected...
Connected...
Connected...
...

Where:

-p : port to which to connect
-t : number of threads to run in parallel
-c : number of clients per thread
-n : number of requests per packet
You can’t perform that action at this time.