fbuild Blink build benchmark
All three tools compile the same Arduino Uno and ESP32-S3 bench/blink/blink.ino. Cold removes project outputs, reusable framework objects, compiler-object caches, and Arduino/PlatformIO download/HTTP caches while retaining installed packages/toolchains and fbuild package archives. Warm is the immediate no-change rebuild. The narrower warm bar overlays the cold bar.
Resolved package stacks: Arduino Uno: matched; fbuild/PlatformIO ratio shown. ESP32-S3: matched; fbuild/PlatformIO ratio shown. Exact package versions and representative core compiler commands are in latest.json.
| Board | Tool | Cold median | Warm median | Cold / warm | Version |
|---|---|---|---|---|---|
| Arduino Uno | Arduino CLI | 966.576 ms | 593.197 ms | 1.63x | arduino-cli Version: 1.5.0 Commit: dd407d42d Date: 2026-05-19T14:07:51Z |
| Arduino Uno | PlatformIO | 924.173 ms | 639.229 ms | 1.45x | PlatformIO Core, version 6.1.19 |
| Arduino Uno | fbuild | 429.465 ms | 47.141 ms | 9.11x | fbuild 2.5.42 |
| ESP32-S3 | Arduino CLI | 13038.239 ms | 2461.272 ms | 5.30x | arduino-cli Version: 1.5.0 Commit: dd407d42d Date: 2026-05-19T14:07:51Z |
| ESP32-S3 | PlatformIO | 7136.460 ms | 1350.325 ms | 5.29x | PlatformIO Core, version 6.1.19 |
| ESP32-S3 | fbuild | 4288.690 ms | 47.872 ms | 89.59x | fbuild 2.5.42 |
Cold phase breakdown
| Board | Tool | Phase | Cold median |
|---|---|---|---|
| Arduino Uno | PlatformIO | compile | 327.986 ms |
| Arduino Uno | PlatformIO | convert-size | 69.985 ms |
| Arduino Uno | PlatformIO | link | 43.694 ms |
| Arduino Uno | PlatformIO | pre-compile | 482.507 ms |
| Arduino Uno | fbuild | board-load | 0.019 ms |
| Arduino Uno | fbuild | build-dirs | 0.086 ms |
| Arduino Uno | fbuild | build-info | 1.581 ms |
| Arduino Uno | fbuild | compile-core | 356.363 ms |
| Arduino Uno | fbuild | compile-db | 1.319 ms |
| Arduino Uno | fbuild | compile-lib-deps | 0.000 ms |
| Arduino Uno | fbuild | compile-local-libs | 0.000 ms |
| Arduino Uno | fbuild | compile-sketch | 194.278 ms |
| Arduino Uno | fbuild | compile-variant | 0.002 ms |
| Arduino Uno | fbuild | config-parse | 0.363 ms |
| Arduino Uno | fbuild | core-cache-hydrate | 0.005 ms |
| Arduino Uno | fbuild | core-cache-store | 5.880 ms |
| Arduino Uno | fbuild | fast-path-check | 0.024 ms |
| Arduino Uno | fbuild | flag-collect | 0.002 ms |
| Arduino Uno | fbuild | fp-watches-collect | 0.004 ms |
| Arduino Uno | fbuild | framework-ensure | 0.035 ms |
| Arduino Uno | fbuild | link | 50.191 ms |
| Arduino Uno | fbuild | project-as-lib | 0.004 ms |
| Arduino Uno | fbuild | source-scan | 0.491 ms |
| Arduino Uno | fbuild | toolchain-ensure | 0.028 ms |
| ESP32-S3 | PlatformIO | compile | 4952.844 ms |
| ESP32-S3 | PlatformIO | convert-size | 192.337 ms |
| ESP32-S3 | PlatformIO | link | 1210.365 ms |
| ESP32-S3 | PlatformIO | pre-compile | 759.272 ms |
| ESP32-S3 | fbuild | archive-core | 7.540 ms |
| ESP32-S3 | fbuild | board-load | 0.024 ms |
| ESP32-S3 | fbuild | boot-artifacts | 148.935 ms |
| ESP32-S3 | fbuild | build-dirs | 0.094 ms |
| ESP32-S3 | fbuild | compile-core-variant | 3365.083 ms |
| ESP32-S3 | fbuild | compile-db | 3.340 ms |
| ESP32-S3 | fbuild | compile-local-libs | 0.060 ms |
| ESP32-S3 | fbuild | compile-sketch | 999.991 ms |
| ESP32-S3 | fbuild | config-parse | 0.320 ms |
| ESP32-S3 | fbuild | core-cache-hydrate | 0.005 ms |
| ESP32-S3 | fbuild | core-cache-store | 9.002 ms |
| ESP32-S3 | fbuild | fast-path-check | 0.006 ms |
| ESP32-S3 | fbuild | fingerprint-save | 0.475 ms |
| ESP32-S3 | fbuild | flag-collect | 0.002 ms |
| ESP32-S3 | fbuild | fp-watches-collect | 0.004 ms |
| ESP32-S3 | fbuild | fw-libs | 10.155 ms |
| ESP32-S3 | fbuild | lib-deps | 0.000 ms |
| ESP32-S3 | fbuild | link-convert-size | 866.816 ms |
| ESP32-S3 | fbuild | pioarduino-resolve | 2.614 ms |
| ESP32-S3 | fbuild | project-lib | 0.016 ms |
| ESP32-S3 | fbuild | scan-sources | 0.707 ms |
Machine-readable data
- manifest.json — stable discovery index for agents
- latest.json — metadata, raw trials, and medians
- history.jsonl — rolling 365-run history