Measured against FreeRTOS on a Cortex-M4.
Arm Cortex-M (ARMv6-M to ARMv8.1-M); RISC-V RV32I and RV32E (including very small RAM devices). Soft and hard floating-point.
GCC, Clang / Arm Compiler 6+, IAR EWARM 8.0+ (Arm only).
C++11 minimum, C++17 or higher recommended. C API available.
CMSIS on Arm platforms and a minimal vendor BSP (Raspberry Pi only).
STM32F407 (Cortex-M4, 168 MHz), GCC 14.2.1, CRC32 workload, August 2026. FreeRTOS V11.2.0. Higher throughput is better; lower jitter, flash and RAM are better.
| Kernel | Tasks | Opt | Throughput | Jitter | Flash | RAM |
|---|---|---|---|---|---|---|
| STK | 16 | -Ofast | 993,937 | 754 | 24.4 KB | 19.8 KB |
| FreeRTOS | 16 | -Ofast | 966,017 | 909 | 15.0 KB | 22.2 KB |
| STK | 16 | -Os | 753,038 | 425 | 14.9 KB | 19.8 KB |
| FreeRTOS | 16 | -Os | 735,342 | 472 | 12.6 KB | 22.2 KB |
| STK | 4 | -Ofast | 989,830 | 742 | 22.6 KB | 6.7 KB |
| FreeRTOS | 4 | -Ofast | 881,082 | 671 | 14.5 KB | 8.8 KB |
| STK | 4 | -Os | 753,891 | 565 | 14.9 KB | 6.7 KB |
| FreeRTOS | 4 | -Os | 673,845 | 510 | 12.6 KB | 8.8 KB |
Higher throughput than FreeRTOS in head-to-head tests.
In 4-task scenarios, ~11% less at 16 tasks.
Throughput stays stable from 4 to 16 tasks.
Benchmark projects are in the repository so you can reproduce the results. Full tables (including 8 tasks) are in the README.