You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **Note:** Revolt was tested with its default StreamSelectDriver. With ext-ev or ext-uv backends, Revolt's I/O performance would be higher, though callback dispatch overhead remains in PHP userland. Fiber performance is nearly identical because `suspend()`/`resume()` is handled by the Zend Engine in both cases.
194
+
**Environment:** PHP 8.5.4, Apple M1 Max, macOS, 100,000 iterations (average of 3 runs).
195
+
Revolt v1.0.8 tested with all four available drivers ([StreamSelect, Ev, Event, UV](https://revolt.run/extensions)). ext-eventloop using kqueue driver.
> These benchmarks measure callback dispatch and scheduling throughput. The I/O backend (StreamSelect, Ev, Event, UV) primarily affects polling efficiency at high concurrency, not dispatch speed — that's why all four Revolt drivers show similar numbers here. ext-eventloop moves the entire dispatch path into C, which is where the difference comes from. Fiber performance is nearly identical because `suspend()`/`resume()` is handled by the Zend Engine directly.
| Fiber suspend/resume | Fiber context switching via Suspension |
44
+
45
+
These benchmarks measure **callback dispatch overhead** — how fast the loop can register, schedule, and invoke callbacks. The I/O backend primarily affects polling efficiency at high concurrency, not dispatch speed.
46
+
47
+
## File structure
48
+
49
+
| File | Description |
50
+
|---|---|
51
+
|`bench.php`| Shared benchmark logic |
52
+
|`bench_eventloop.php`| ext-eventloop entry point |
0 commit comments