Benchmarks

Methodology

Our benchmark methodology is based on the approach used by the libevent library. We conduct two types of benchmarks:

  1. Single Active Connection: Measures the time taken to serve one active connection, highlighting scalability issues in traditional interfaces like select or poll.

  2. Multiple Active Connections: Measures the time taken to serve 100 active connections that chain writes to new connections until 1000 writes and reads have occurred, exercising the event loop multiple times.

Performance Comparison

We compared the performance of different event notification mechanisms in Libevent and COROIO across various platforms:

Intel i7-12800H (Ubuntu 23.04)

i7-12800H Single Connection Benchmark i7-12800H Multiple Connections Benchmark

Intel i5-11400F (Ubuntu 23.04, WSL2)

i5-11400F Single Connection Benchmark i5-11400F Multiple Connections Benchmark

Apple M1 (MacOS 12.6.3)

Apple M1 Single Connection Benchmark Apple M1 Multiple Connections Benchmark

These benchmarks demonstrate the performance characteristics of COROIO compared to Libevent across different hardware and operating systems. For detailed analysis of the results, please refer to the graphs above.