Performance metrics for AkiraOS on ESP32-S3.
| Metric |
Value |
Platform |
| Boot Time |
~500ms |
ESP32-S3 @ 240MHz |
| Shell Response |
<10ms |
All platforms |
| Thread Switch |
<5μs |
Zephyr scheduler |
| Operation |
Time |
Notes |
| WASM Load (100KB) |
~80ms |
Chunked loading |
| Native Call Overhead |
~60ns |
Inline cap check |
| App Start |
~50ms |
Instantiation + init |
| App Switch |
<1ms |
Context save/restore |
| Operation |
Throughput |
Latency |
| HTTP Upload |
~1.3 MB/s |
N/A |
| OTA Flash Write |
~200 KB/s |
10-20ms per block |
| BLE Transfer |
~10 KB/s |
<10ms |
| WiFi Scan |
~2s |
13 channels |
Memory Usage
| Component |
SRAM |
PSRAM |
| Kernel |
~128KB |
- |
| Network Stack |
~32KB |
12KB buffers |
| WASM Pool |
- |
256KB |
| Per App (avg) |
~4KB |
64-128KB |
Power Consumption (ESP32-S3)
| Mode |
Current |
Use Case |
| Active (WiFi TX) |
~160mA |
File upload |
| Active (idle) |
~80mA |
App running |
| Modem sleep |
~30mA |
WiFi power save |
| Light sleep |
~3mA |
CPU halted |
Optimization Tips
- Enable AOT Compilation - 2x performance boost
- Optimize WASM - Use
wasm-opt -Oz
- Reduce Logging - Set to WARNING in production
- Use Inline Functions - Reduce call overhead
- Batch Operations - Minimize native calls
Comparison
AkiraOS vs Native Code
| Metric |
Native |
WASM (Interp) |
WASM (AOT) |
| Execution Speed |
1x |
0.3-0.5x |
0.6-0.8x |
| Memory Overhead |
- |
+32KB runtime |
+32KB runtime |
| Safety |
No sandboxing |
Sandboxed |
Sandboxed |
Custom Benchmarks:
AkiraOS:~$ benchmark native_call
AkiraOS:~$ benchmark wasm_load
System Profiling:
AkiraOS:~$ kernel threads
AkiraOS:~$ kernel stacks
AkiraOS:~$ wasm status
Last updated: 2026-09-14 (AkiraOS v1.6.5)