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 | ⚠️ Unsafe | ✅ Sandboxed | ✅ Sandboxed |
Custom Benchmarks:
uart:~$ benchmark native_call
uart:~$ benchmark wasm_load
System Profiling:
uart:~$ kernel threads
uart:~$ kernel stacks
uart:~$ wasm status