内存使用情况对比

[English]

此文档用来归纳不同芯片运行常用例程时的内存消耗情况。

常用例程剩余内存大小对比

请注意,以下测试结果没有经过任何内存优化,仅仅是直接运行 ESP-IDF 里的基础示例后获得的结果,如想查看内存优化后的结果,可参考 举例:ESP32-C3 内存优化前后的剩余内存大小对比

应用固件大小对比

example

ESP32

ESP32-C3

ESP32-C3(ECO7)

ESP32-C2

ESP32-S3

ESP32-C6

ESP32-H2

Empty project

305 K

330 K

330 K

196 K

389 K

465 K

264 K

Station

229 K

222 K

230 K

104 K

282 K

327 K

not support

Gatt_server

205 K

218 K

230 K

81 K

280 K

365 K

152 K

bleprph

209 K

219 K

233 K

100 K

281 K

379 K

170 K

provision(ble & Wi-Fi coexis)

164 K

134 K

152 K

22 K

193 K

262 K

not support

备注

该数据在 IDF v5.3.1 中测试,使用每个示例的默认 sdkconfig。

备注

在 ESP32-C3 (ECO7) 中,有更多可用的 RAM 供无线应用使用:Wi-Fi 相关为 10 KB,BLE 为 15 KB,Wi-Fi & BLE 共存为 20 KB。 如果您想使用 ESP32-C3 (ECO7),请在 menuconfig 中启用以下设置:

  • Component config > Hardware Settings > Chip revision > Minimum Supported ESP32-C3 Revision > Rev 1.1

  • Component config > SPI Flash driver > Use esp_flash implementation in ROM

举例:ESP32-C3 内存优化前后的剩余内存大小对比

Available free heap after optimization for ESP32-C3/ESP32-C2

example

内存优化前

内存优化后

Physical memory

400 K

400 K

Station

230 K

304 K

Station + 1TLS(MQTTS)

210 K

300 K

bleprph_wifi_coex

178 K

248 K

备注

  • ESP32-C3 数据在 ESP-IDF v5.2.2 中测试

  • got ip 事件后打印站点的空闲堆内存

  • Station + 1TLS(MQTTS) 的数据基于 ESP-IDF mqtt/ssl 示例,空闲堆内存在 MQTT_EVENT_DATA 事件后打印

  • ESP-IDF bleprph_wifi_coex 示例 测试中,nimble BLE 广播在 got ip 事件后启动,然后打印空闲堆内存