fbuild Blink build benchmark

Generated 2026-10-21T09:37:09Z from 3f8add9ca65dc427f218f80e28ffe465ff73b791. Median of 3 trials on linux/x86_64.

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.

Arduino CLI vs PlatformIO vs fbuild cold and warm Blink build timings
BoardToolCold medianWarm medianCold / warmVersion
Arduino UnoArduino CLI966.576 ms593.197 ms1.63xarduino-cli Version: 1.5.0 Commit: dd407d42d Date: 2026-05-19T14:07:51Z
Arduino UnoPlatformIO924.173 ms639.229 ms1.45xPlatformIO Core, version 6.1.19
Arduino Unofbuild429.465 ms47.141 ms9.11xfbuild 2.5.42
ESP32-S3Arduino CLI13038.239 ms2461.272 ms5.30xarduino-cli Version: 1.5.0 Commit: dd407d42d Date: 2026-05-19T14:07:51Z
ESP32-S3PlatformIO7136.460 ms1350.325 ms5.29xPlatformIO Core, version 6.1.19
ESP32-S3fbuild4288.690 ms47.872 ms89.59xfbuild 2.5.42

Cold phase breakdown

BoardToolPhaseCold median
Arduino UnoPlatformIOcompile327.986 ms
Arduino UnoPlatformIOconvert-size69.985 ms
Arduino UnoPlatformIOlink43.694 ms
Arduino UnoPlatformIOpre-compile482.507 ms
Arduino Unofbuildboard-load0.019 ms
Arduino Unofbuildbuild-dirs0.086 ms
Arduino Unofbuildbuild-info1.581 ms
Arduino Unofbuildcompile-core356.363 ms
Arduino Unofbuildcompile-db1.319 ms
Arduino Unofbuildcompile-lib-deps0.000 ms
Arduino Unofbuildcompile-local-libs0.000 ms
Arduino Unofbuildcompile-sketch194.278 ms
Arduino Unofbuildcompile-variant0.002 ms
Arduino Unofbuildconfig-parse0.363 ms
Arduino Unofbuildcore-cache-hydrate0.005 ms
Arduino Unofbuildcore-cache-store5.880 ms
Arduino Unofbuildfast-path-check0.024 ms
Arduino Unofbuildflag-collect0.002 ms
Arduino Unofbuildfp-watches-collect0.004 ms
Arduino Unofbuildframework-ensure0.035 ms
Arduino Unofbuildlink50.191 ms
Arduino Unofbuildproject-as-lib0.004 ms
Arduino Unofbuildsource-scan0.491 ms
Arduino Unofbuildtoolchain-ensure0.028 ms
ESP32-S3PlatformIOcompile4952.844 ms
ESP32-S3PlatformIOconvert-size192.337 ms
ESP32-S3PlatformIOlink1210.365 ms
ESP32-S3PlatformIOpre-compile759.272 ms
ESP32-S3fbuildarchive-core7.540 ms
ESP32-S3fbuildboard-load0.024 ms
ESP32-S3fbuildboot-artifacts148.935 ms
ESP32-S3fbuildbuild-dirs0.094 ms
ESP32-S3fbuildcompile-core-variant3365.083 ms
ESP32-S3fbuildcompile-db3.340 ms
ESP32-S3fbuildcompile-local-libs0.060 ms
ESP32-S3fbuildcompile-sketch999.991 ms
ESP32-S3fbuildconfig-parse0.320 ms
ESP32-S3fbuildcore-cache-hydrate0.005 ms
ESP32-S3fbuildcore-cache-store9.002 ms
ESP32-S3fbuildfast-path-check0.006 ms
ESP32-S3fbuildfingerprint-save0.475 ms
ESP32-S3fbuildflag-collect0.002 ms
ESP32-S3fbuildfp-watches-collect0.004 ms
ESP32-S3fbuildfw-libs10.155 ms
ESP32-S3fbuildlib-deps0.000 ms
ESP32-S3fbuildlink-convert-size866.816 ms
ESP32-S3fbuildpioarduino-resolve2.614 ms
ESP32-S3fbuildproject-lib0.016 ms
ESP32-S3fbuildscan-sources0.707 ms

Machine-readable data

Benchmark workflow run | one-commit publication branch