ESP32-S3 固件性能基准全解析:ESPectre 四种前端 × 两种检测器的实测指标与复现方法
ESP32-S3 固件性能基准全解析ESPectre 四种前端 × 两种检测器的实测指标与复现方法【免费下载链接】espectreWi-Fi CSI motion sensing for ESP32. C SDK, ESPHome, Native, and Matter frontends, browser tools, and a CLI for the full device lifecycle. GPLv3 and commercial licensing.项目地址: https://gitcode.com/GitHub_Trending/es/espectre导读本文以 ESPectre 仓库中的 docs/performance/ESP32-S3.md 固件性能报告为核心逐一拆解 Native、ESPHome、Matter、Micro-ESPectre 四种前端在 Lightweight / High Accuracy 两种检测器下的真实固件指标二进制体积、分区余量、CPU 负载、空闲堆、CSI 占用率、检测耗时并结合 tools/benchmark_firmware.py 与 tools/README.md 的基准契约说明这些数据是如何在真实硬件上测出来的、每项指标的含义以及如何在自己的 ESP32-S3 上复现整轮基准。读完本文你将能读懂这份自动生成的性能报告并能独立跑通benchmark_firmware.py的完整流程。一、报告是什么一份在真实硬件上生成的固件基准docs/performance/ESP32-S3.md不是人工撰写的宣传稿而是由仓库中的 tools/benchmark_firmware.py 在真实连接的 ESP32-S3 开发板上自动生成的运行报告。文档开头明确标注生成命令tools/benchmark_firmware.py --chip s3 --port serial-portGit 修订ed014256dbf6本次运行时的仓库版本运行时间2026-09-05T13:47:3702:00选定监控时长60 seconds总体结果PASS报告头部还带有一组溯源信息这是 ESPectre 基准工具刻意设计的能力它记录运行开始/结束时的 Git 修订ed014256dbf6 → ed014256dbf6、工作区是否脏yes → yes、以及 SHA-256 源码指纹da376eae… → da376eae…并据此判定Source consistency: stable。从 tools/lib/firmware_benchmark/report.py 的实现可以看到若运行期间 Git 修订发生变化该案例会被直接标记为 FAILbenchmark_revision_provenance_reason若仅源码指纹变化而修订未变则报告会给出 WARNING 但结果仍有效。这意味着每一份性能报告的每个数字都可以回溯到确切的源码版本这正是性能数据可审计的工程实践。1.1 快照范围与检测器覆盖说明报告中有两句容易被忽略但很关键的说明Snapshot scope报告头部标识的是生成本报告的那次运行。通过--update或--resume保留的历史案例可能来自更早的运行要确定某个案例的确切来源需要查看每次运行独立落盘的 artifacts见 write_benchmark_artifacts。Detector coverageESPHome、Native、Matter 三种 C 前端同时支持 Lightweight 与 High Accuracy且三者都支持持久化的运行时检测器切换即同一份固件刷入后可通过 Direct 控制在 Lightweight / High Accuracy 之间切换无需重新编译烧录而 Micro-ESPectreMicroPython 运行时只在受支持的芯片上部署 Lightweight 检测器。下面矩阵采样的是代表性案例而非所有支持组合。这两点在 tools/lib/firmware_benchmark/models.py 的CASES定义中得到了印证基准矩阵固定为 7 个案例——Native Lightweight、Native High Accuracy、ESPHome Lightweight、ESPHome High Accuracy、Matter Lightweight、Matter High Accuracy、Micro-ESPectre Lightweight。二、总览7 个基准案例的 Summary 矩阵报告先以一张 Summary 表给出各前端/检测器组合的关键结果FrontendDetection profileResultOccupancyBinary sizePartition freeCPU loadMin free heapNativeLightweightPASS73.32%1.16 MiB727.2 KiB (37.9%)4.39%191.9 KiBNativeHigh AccuracyPASS93.52%1.16 MiB727.2 KiB (37.9%)6.23%188.3 KiBESPHomeLightweightPASS93.45%1001.5 KiB790.6 KiB (44.1%)3.59%8.18 MiBESPHomeHigh AccuracyPASS93.17%1001.5 KiB790.6 KiB (44.1%)4.66%8.17 MiBMatterLightweightPASS79.27%1.54 MiB2.27 MiB (59.5%)5.17%89.1 KiBMatterHigh AccuracyPASS76.60%1.54 MiB2.27 MiB (59.5%)6.16%89.1 KiBMicro-ESPectreLightweightPASS77.54%1.25 MiB768.3 KiB (38.7%)70.32%46.9 KiB从这张表可以读出几个值得注意的规律同一前端的 Lightweight 与 High Accuracy 共享同一份固件Native 两种检测器的 Binary size 都是 1.16 MiBESPHome 都是 1001.5 KiBMatter 都是 1.54 MiB。原因正如报告所说——C 前端在刷入一个 canonical Lightweight 镜像后通过 Direct 控制做运行时切换选出第二种检测器而不是重新编译烧录。High Accuracy 的 CPU 负载普遍更高Native 从 4.39% 升到 6.23%ESPHome 从 3.59% 升到 4.66%Matter 从 5.17% 升到 6.16%。这与检测器实现直接相关——high_accuracy_detector.h 使用 MLP 神经网络推理predict()调用由训练导出的core/ml_weights.h元数据定义隐藏层结构而 lightweight_detector.h 只是湍流自相关 聚合湍流 IQR的加权融合vote-free weighted fusion无神经网络推理开销。ESPHome 的空闲堆远高于其他前端8.18 MiB vs 46.9191.9 KiB这与 ESPHome 前端构建时采用了更大的 RAM 配置有关报告中 ESPHome 案例的 Build RAM used 为 121,763 字节而 Matter 与 Micro-ESPectre 的空闲堆余量则紧张得多——Matter 最小空闲堆仅 89.1 KiBMicro-ESPectre 更是只有 46.9 KiB。Micro-ESPectre 的 CPU 负载高达 70.32%这是全部 7 个案例中最突出的异常值。原因在于它是 MicroPython 运行时部署 169,086 字节 Python 源码解释执行 GC 的固定成本远高于编译型 C从 Detailed 指标看其 Loop average 仅 241.67 us 但 Loop maximum 高达 26525 us正是 GC 停顿等开销的体现。三、逐案例详解每项指标的含义与实测值报告为每个案例提供完整的指标表。下面以Metric | Value表格逐项说明含义并结合源码解释这些指标从哪来、怎么读。3.1 Native Lightweight / High Accuracy原生 IDF 前端Native Lightweight 的关键指标MetricValue解读Benchmark moderuntime运行时基准真实监控打分而非流式模拟Build duration37.8s首次构建耗时High Accuracy 案例复用构建产物后仅 2.1sFlash duration13.3s烧录耗时Monitor duration2m 35.6s串口监控打分窗口Firmware binary1,221,472 bytes (1192.8 KiB)固件二进制体积Application partition used / free1192.8 KiB / 727.2 KiB (37.9%)应用分区占用与剩余Verified detectorlightweight运行期校验的检测器身份Direct control attempts120/120 succeededDirect 控制请求全部成功Direct censored failures0被审查censored的失败请求数Direct diagnostics samples60/60 expected诊断采样全部到位Status cadence1.00 s mean, 1.03 s max gap状态上报节奏 1 秒均值、最大间隔 1.03 秒Status gaps over tolerance0超容忍度间隔数Device uptime restarts0打分窗口内无重启Packet-rate samples60包速率采样数Packet rate73.16 pps mean, 67 min, 80 max实际 CSI 包速率CSI occupancy73.32% mean, 68% min, 81% maxCSI 时隙占用率Motion samples233/5 expected检测到 233 次运动事件要求至少 5 次Heap stability change-2 bytes, -0.00%两窗口堆中位数几乎不变Minimum free heap196,503 bytes (191.9 KiB)最低空闲堆Runtime load4.39% mean运行负载均值Loop average / maximum505.57 us / 8074 us主循环平均/最大耗时Detection average / min / max301.86 / 23 / 700 us检测推理耗时统计Native High Accuracy 与 Lightweight 的差别集中在Packet rate 明显更高93.49 pps vs 73.16 pps、CSI occupancy 更高93.52% vs 73.32%这是因为 Lightweight 案例在运行时有一个内部受管流量 100 pps 目标的前置配置阶段Pass Criteria 中要求 C 前端在运行时变更前报告 Lightweight 检测、内部受管流量与 100 pps 目标随后才切换到最终检测器。这也解释了为何同为 Native两个案例的包速率与占用率差异巨大。Detection average 从 301.86 us 升到 981.29 usHigh Accuracy 的 MLP 推理 特征提取L1-delta、信道形状轨迹、聚合湍流等多路 tracker在 ESP32-S3 上的单次推理耗时约为 Lightweight 的 3.2 倍但检测最大耗时也仅 1695 us远小于 1 秒的评估周期余量充足。3.2 ESPHome Lightweight / High AccuracyESPHome 两个案例的完整指标表以 Lightweight 为例MetricValueBenchmark moderuntimeBuild duration4.0sFlash duration11.2sMonitor duration2m 36.8sFirmware binary1,025,520 bytes (1001.5 KiB)Application partition used1,025,411 bytes (1001.4 KiB)Application partition free809,597 bytes (790.6 KiB)Build RAM used121,763 bytes (118.9 KiB)Verified detectorlightweightDirect control attempts120/120 succeededDirect censored failures0Direct diagnostics samples60/60 expectedStatus cadence1.00 s mean, 1.02 s max gapStatus gaps over tolerance0Device uptime restarts0Packet-rate samples60Packet rate93.41 pps mean, 89 min, 96 max, 1.52 standard deviationCSI occupancy93.45% mean, 90% min, 96% maxMotion samples235/5 expectedLast free heap8,587,294 bytes (8386.0 KiB)Heap stability change10 bytes, 0.00%Minimum free heap8,574,699 bytes (8373.7 KiB)Last largest heap block8,257,536 bytes (8064.0 KiB)Runtime load3.59% meanLoop average629.43 usLoop maximum5765 usDetection samples240Detection average / min / max294.00 / 19 / 759 us值得注意的差异ESPHome 的Build RAM used 是 121,763 字节且空闲堆高达 8.37 MiB——ESPHome 前端默认启用了较大的堆配置PSRAM 相关配置因此堆余量在所有前端中最为宽裕。ESPHome 的包速率达到 93.41 pps、占用率 93.45%且标准差仅 1.52是所有案例中最稳定的链路之一。High Accuracy 下 Detection average 为 714.00 us对比 Lightweight 的 294.00 usRuntime load 从 3.59% 升到 4.66%规律与 Native 一致。3.3 Matter Lightweight / High AccuracyMatter 是四条前端链路中最重的一条BLE Wi-Fi 配网、CHIP Tool 控制器参与报告指标也反映其特殊性MetricValueLightweight 示例Benchmark moderuntimeBuild duration3m 52.5sDeploy duration18.9sFlash duration16.6sMonitor duration3m 4.8sFirmware binary1,618,752 bytes (1580.8 KiB)Application partition used1,618,752 bytes (1580.8 KiB)Application partition free2,378,944 bytes (2323.2 KiB)Verified detectorlightweightDirect control attempts120/120 succeededDirect censored failures0Direct diagnostics samples60/60 expectedStatus cadence1.00 s mean, 1.04 s max gapStatus gaps over tolerance0Device uptime restarts0Packet-rate samples60Packet rate79.01 pps mean, 66 min, 86 max, 4.31 standard deviationCSI occupancy79.27% mean, 66% min, 86% maxMotion samples233/5 expectedMinimum free heap91,227 bytes (89.1 KiB)Runtime load5.17% meanLoop average552.14 usLoop maximum125903 usDetection average / min / max309.71 / 0 / 2545 usMatter 案例的关键观察构建时间 3m 52.5s 远超其他前端因为 Matter 前端需要编译连接组connectedhomeip / esp-matter 组件固件二进制也是最大的 1.58 MiB应用分区总计约 3.9 MiB剩余 2.27 MiB / 59.5%。Loop maximum 高达 125903 us约 126 ms这是全部案例中最大的主循环峰值从源码结构看Matter 前端的主循环中可能包含与协议栈相关的长尾处理如 CHIP 事件处理但平均值仅 552 us说明长尾只是偶发。High Accuracy 的 Packet rate 波动最大76.42 pps mean、51 min、92 max、标准差 7.40CSI occupancy 在 52%92% 之间大幅波动。这与 Matter 链路在配网后 Wi-Fi 流量分布有关但即便如此仍通过了 70% 占用率下限的判定见下文 Pass Criteria。3.4 Micro-ESPectre LightweightMicroPython 运行时Micro-ESPectre 是唯一非编译型的案例其指标具有明显的解释型语言特征MetricValueBenchmark moderuntimeDeploy duration10.7sFlash duration2m 10.3sMonitor duration1m 41.9sFirmware binary1,310,416 bytes (1279.7 KiB)Deployed Python source169,086 bytes (165.1 KiB)Application partition used1,244,880 bytes (1215.7 KiB)Application partition free786,736 bytes (768.3 KiB)Verified detectorlightweightDirect control attempts28/28 succeededDirect censored failures0Status samples13/14 expectedStatus cadence4.50 s mean, 5.00 s max gapStatus gaps over tolerance0Device uptime restarts0Packet-rate samples13Packet rate77.37 pps mean, 67 min, 90 max, 6.07 standard deviationCSI occupancy77.54% mean, 67% min, 90% maxMotion samples234/5 expectedLast free heap50,063 bytes (48.9 KiB)Heap stability change0 bytes, 0.00%Minimum free heap48,015 bytes (46.9 KiB)Runtime load70.32% meanLoop average241.67 usLoop maximum26525 usDetection samples237Detection average / min / max518.17 / 240 / 947 usMicro-ESPectre 案例的特殊之处状态节奏是 4.50 秒均值而非 1.00 秒从 settings.py 可见工具刻意用MICRO_DIRECT_DIAGNOSTICS_INTERVAL_SECONDS 4.5采样——Micro 的诊断快照以 1 秒节奏刷新用半秒相位偏移的 4.5 秒间隔可避免与 4 秒/6 秒快照增量相邻采样同时以MICRO_RUNTIME_STATUS_GAP_TOLERANCE_MS 1000放宽间隔容忍度。这解释了为什么状态样本只有 13/14。Direct control attempts 只有 28/28同样是采样节奏放宽的结果控制请求数比 C 前端的 120 次少。CPU 负载 70.32% 最高、空闲堆 46.9 KiB 最小MicroPython 解释执行 GC 是主要开销且 48.9 KiB 的空闲堆已接近内存下限。报告同时验证了Micro-ESPectre runtime launcher 在整个 Direct 采集期间保持存活Pass Criteria 最后一条。四、Pass Criteria这些数据凭什么算通过报告末尾列出整套判定标准这些标准不是临时写死的而是由 report.py 的render_report()按案例组合动态生成并与 tools/README.md 中的Firmware Benchmark Contract一一对应。核心判定包括构建/烧录/部署全部成功所有要求的 build、flash、deploy 阶段正常完成。Direct v1 全程可用Native、ESPHome、Matter、Micro-ESPectre 都在每个打分窗口内协商 Direct v1 并采样标准诊断字段。配网路径正确Native 与 ESPHome 使用 canonical 固件默认配置、烧录时擦除全部设备数据、通过Improv Serial配网Matter 擦除全部数据后通过与固件 esp-matter 组件同修订的 CHIP Tool 控制器经 BLE Wi-Fi 完成 commission 并到达 Direct 端点Micro-ESPectre 仅注入连接配置。检测器与流量前置信标C 前端在运行时变更前报告 Lightweight 检测、配置的内部受管流量、100 pps 目标MINIMUM_BENCHMARK_CSI_TARGET_PPS 100Native 保持未配置 MQTT。运动事件与堆稳定性感知前端通过 Direct SSE 至少收到 5 次标准运动事件MIN_MOTION_SAMPLES 5空闲堆在启动宽限期后提供两个完整的连续 10 秒窗口HEAP_STABILITY_WINDOW_SECONDS 10且最终窗口堆中位数相对前一窗口下降不超过 5%HEAP_STABILITY_MAX_DECLINE_PERCENT 5.0。无重启、节奏稳定打分窗口内设备 uptime 无重启Direct 诊断节奏保持在运行时间隙容忍度内C 前端为RUNTIME_STATUS_GAP_TOLERANCE_MS 500Micro 放宽为 1000ms感知前端上生产运动事件保持在线。CSI 占用率下限7 个 runtime 案例的平均 CSI 占用率必须不低于 70% 的admitted-slot detector-ready下限。这个 70% 不是随便定的——temporal_csi_sampler.py 中MINIMUM_COVERAGE_NUMERATOR 7、MINIMUM_COVERAGE_DENOMINATOR 10minimum_valid_slots()即十分之七占用率地板向上取整它与数据采集、准入判定共用同一套 70% 门槛保证固件链路和数据集质量评判标准一致。检测计时存在7 个 runtime 案例的检测器计时detection timing必须存在。Direct 发送失败不增长前端暴露发送失败/意外拒连计数器时打分窗口内这些值不得增长。Micro 启动器存活Micro-ESPectre runtime launcher 在整个 Direct 采集期间保持运行。这份 2026-09-05 的报告全部案例均为 PASS说明 ESP32-S3 在四种前端的代表性配置下均满足上述硬件级约束。五、如何复现在 ESP32-S3 上跑通整轮基准5.1 命令行入口报告的生成命令是python tools/benchmark_firmware.py --chip s3 --port serial-port常用参数详见 benchmark_firmware.py 的 argparse 定义参数说明--chip必填连接的目标芯片本报告为s3可选esp32、c3、c5、c6、s2--port必填目标板的串口--frontend只跑某一前端esphome/micro/native/matter--detector只跑某一检测器lightweight/high_accuracy--update保留报告中的既有案例仅替换本次重跑的案例结果--resume保留已通过的案例只重跑失败或缺失的案例--duration SECONDS每个监控窗口的打分秒数默认 60 秒即报告头部的Selected monitor duration--artifacts-dir把原始日志与结构化证据写入指定目录例如只重跑 ESPHome 前端且沿用历史结果python tools/benchmark_firmware.py --chip s3 --port /dev/ttyUSB0 --frontend esphome --resume5.2 实验环境配置基准工具从 tools/benchmark_firmware.local.env 读取实验室设置环境变量ESPECTRE_BENCHMARK_*优先于该文件。最小配置是 Wi-Fi 凭据ESPECTRE_BENCHMARK_WIFI_SSIDYour Wi-Fi SSID ESPECTRE_BENCHMARK_WIFI_PASSWORDYour Wi-Fi password ESPECTRE_BENCHMARK_WIFI_BSSID ESPECTRE_BENCHMARK_WIFI_CHANNEL0可选设置还包括ESPECTRE_BENCHMARK_CHIP_TOOL当 chip-tool 不在PATH或~/.local/bin/下时指定 Matter commissioning 工具路径、ESPECTRE_BENCHMARK_MATTER_COMMISSIONING_ATTEMPTSBLE 瞬时失败重试次数默认 2、ESPECTRE_BENCHMARK_MATTER_COMMISSIONING_TIMEOUT_SECONDS默认 180等。注意两个约束见 settings.pyESPECTRE_BENCHMARK_WIFI_CHANNEL必须配合ESPECTRE_BENCHMARK_WIFI_BSSID使用否则直接报错——因为基准需要把设备钉在某个 AP 上并验证关联仅指定信道无法定位 AP。设置 BSSID 后工具会在配网阶段用forcetrue强制触发一次重关联即使设备已关联该 AP并要求拿到 Direct 确认含 apply 前的current_bssid后才能重连超时、复位、响应丢失、关联校验失败或观察到设备重启都会导致该案例 FAIL。5.3 执行流程与产物整轮基准按 7 个案例顺序执行Native → ESPHome → Matter均为 Direct 前端最后 Micro-ESPectre。执行中每个 Direct 前端案例会复用同一个已刷入的 canonical Lightweight 镜像通过 Direct 选择另一个检测器High Accuracy做运行时切换避免重复编译烧录tools/README.md 的 Firmware Benchmark Contract 明确要求构建 canonical 配置、保留生产默认值、不生成基准专用 YAML/sdkconfig overlay、不做 clean build。运行结束后工具会把报告写入docs/performance/ESP32-S3.md在data/untracked/firmware_benchmarks/下写入每次运行的 artifacts每个案例一个目录含build.log/flash.log/monitor.log原始日志、逐行带设备时间戳的.jsonl事件流、以及结构化analysis.jsonbuild 指标、runtime 指标、Direct 采样、SSE 事件、传输证据根目录还有汇总manifest.json记录 git 修订、源码指纹、schema 版本4。这就是报告头部Snapshot scope说用 per-run artifacts 确定案例来源所指的机制。六、指标背后的源码检测器与统计口径6.1 Lightweight无需训练的自校准融合检测器lightweight_detector.h 明确其设计vote-free weighted fusion of turbulence autocorrelation and aggregated turbulence IQR湍流自相关与聚合湍流 IQR 的无投票加权融合并在文件头注明与 tools/lib/lightweight_detector.py 保持镜像一致。其关键常量为融合权重LIGHTWEIGHT_AUTOCORR_WEIGHT 5.083、LIGHTWEIGHT_TURB_IQR_OVER_MEAN_AGGR_WEIGHT 4.998截距LIGHTWEIGHT_INTERCEPT 1.078启动校准LIGHTWEIGHT_STARTUP_QUANTILE 0.95、强度 0.5、上限 64 个启动样本静置降阈LIGHTWEIGHT_SETTLE_BLOCKS 12× 20 次评估 ≈ 60 秒名义节奏下margin 为 2.7 logit 单位——即当开场噪声高于会话其余部分时长静默期可逐步下调在线阈值。从类注释看它不需要训练数据会在启动校准阶段自适应房间环境self-calibrating, no training data required因此是默认检测器Prefer it unless you have a reason to run HighAccuracyDetector。这解释了为什么它在报告中的推理耗时要小得多——纯特征融合 sigmoid无 MLP 推理。6.2 High Accuracy导出权重的 MLP 神经检测器high_accuracy_detector.h 描述其算法流水线每包用 CV 归一化std/mean计算空间湍流对湍流与 L1-delta 流做可选 Hampel 滤波可选低通滤波降噪从湍流缓冲区提取统计特征用导出的架构元数据执行 MLP 推理predict()隐藏层布局由自动生成的core/ml_weights.h定义而非硬编码与阈值比较判定运动。类注释同时给出重要提醒它不做房间校准携带的是训练时学到的固定阈值因此在训练语料代表的场景中表现最佳选择它之前应查看 docs/performance/README.md 中的分芯片指标。这为报告数据提供了决策上下文——ESP32-S3 的 High Accuracy 在 docs/performance/README.md 的正常 Wi-Fi 信号下 Recall 100.0%、FP Rate 0.0%弱信号下 Recall 98.7%、FP Rate 0.2%长静默场景 FP Rate 仅 0.02%可作为选型依据。6.3 统计口径指标如何在 analysis 层计算从 analysis.py 可以看到部分指标的聚合方式Runtime load / Loop 耗时只取performance_window_ready为真的诊断窗口且要求连续窗口的签名runtime_load_percent、loop_avg_us、loop_max_us、detection_samples等发生变化才计入样本避免重复统计同一窗口负载取均值statistics.fmeanLoop 最大值取全窗口 max。Detection 耗时只在detection_timing_supported为真的窗口统计detection_samples为各窗口计数之和均值/最小/最大分别聚合——报告中的 Detection samples | 241 就是这类窗口计数之和。堆指标heap_min取minimum_free_heap_kb的最后一个值换算成字节heap_largest_last取largest_free_memory_kb末值。这解释了 Detailed 表中 Last free heap / Minimum free heap / Last largest heap block 三个堆指标的差异。七、报告数据的适用边界与阅读建议这是单次硬件运行的真实测量数值会随固件版本、串口速度、Wi-Fi 环境、板卡型号变化。若要对比不同提交的性能应使用--resume/--update保留基线并优先参考同一git revisionsource fingerprint下的案例跨修订比较请以各次运行的 artifacts 为准。Pass Criteria 才是硬门槛Summary 表格中的占用率、堆、负载等是观测值真正决定 PASS/FAIL 的是第五节列出的约束70% 占用率地板、10 秒堆稳定窗口、≤5% 堆下降、≥5 次运动事件、零重启等。阅读报告时若某个案例 FAIL应优先查看该案例的 Failure reasons 列表再回到对应日志/JSONL 定位具体阶段。CPU 负载与占用率的含义不同CPU 负载是运行时负载均值诊断窗口内性能计数器的均值CSI 占用率是时隙占用率实际到包占比相对 100 pps 目标的比率。Micro-ESPectre 的 70.32% 负载不表示它会拖垮系统——其 Detection average 仅 518 us且 46.9 KiB 最小空闲堆通过了堆稳定性检验只是说明解释型运行时在同等监控压力下更吃 CPU。本文数据仅反映ed014256dbf6修订与 2026-09-05 的运行性能数字不是承诺若需最新数据请在仓库根目录按上文命令自行复现复现前请阅读 tools/README.md 的 Firmware Benchmark Contract 与 docs/SETUP.md 确认环境就绪。通过以上分析docs/performance/ESP32-S3.md这份自动生成报告已不再是一串数字而是一份可审计、可复现、可定位问题环节的固件性能基准既能看到四种前端 × 两种检测器在 ESP32-S3 上的真实资源账本也能沿着 7 个案例的指标表、Pass Criteria 与 artifacts 目录把任何一次 FAIL 精确追溯到构建、烧录、配网或运行监控的某一具体阶段。【免费下载链接】espectreWi-Fi CSI motion sensing for ESP32. C SDK, ESPHome, Native, and Matter frontends, browser tools, and a CLI for the full device lifecycle. GPLv3 and commercial licensing.项目地址: https://gitcode.com/GitHub_Trending/es/espectre创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考