MicroPython:Библиотеки/esp32/esp32.idf heap info()
Модуль esp32 – функционал ESP32[1]
esp32.idf_heap_info(capabilities)
Возвращает информацию о кучах ESP-IDF. Один из них содержит кучу MicroPython, а другие используются ESP-IDF, например, для сетевых буферов и других данных. Эта информация полезна для того, чтобы узнать, сколько памяти доступно ESP-IDF и, в частности, сетевому стеку. Она может пролить свет на ситуации, когда операции ESP-IDF дают сбой из-за проблем с выделением памяти. Впрочем, эта информация бесполезна для выявления проблем с выделением памяти в Python – используйте для этого micropython.mem_info().
Аргумент capabilities соответствует значениям MALLOC_CAP_XXX в ESP-IDF, но два наиболее полезных – это предзаданные esp32.HEAP_DATA (участки кучи для данных) и esp32.HEAP_EXEC (участки, где можно выполнять код, используемые эмиттером нативного кода).
Возвращаемое значение – это список 4-элементных кортежей, где каждый кортеж соответствует одной куче и содержит: общее количество байтов, свободное место (в байтах), самый большой свободный блок и минимальное количество свободной памяти за все время.
Пример после загрузки:
>>> import esp32; esp32.idf_heap_info(esp32.HEAP_DATA)
[(240, 0, 0, 0), (7288, 0, 0, 0), (16648, 4, 4, 4), (79912, 35712, 35512, 35108), (15072, 15036, 15036, 15036), (113840, 0, 0, 0)]