内存使用情况对比
此文档用来归纳不同芯片运行常用例程时的内存消耗情况。
常用例程剩余内存大小对比
请注意,以下测试结果没有经过任何内存优化,仅仅是直接运行 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 内存优化前后的剩余内存大小对比
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 事件后启动,然后打印空闲堆内存