MicroPython:Библиотеки/esp32/esp32.idf heap info(): различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
Строка 17: | Строка 17: | ||
Пример после загрузки: | Пример после загрузки: | ||
<syntaxhighlight lang="python | <syntaxhighlight lang="python"> | ||
>>> import esp32; esp32.idf_heap_info(esp32.HEAP_DATA) | >>> 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)] | [(240, 0, 0, 0), (7288, 0, 0, 0), (16648, 4, 4, 4), (79912, 35712, 35512, 35108), (15072, 15036, 15036, 15036), (113840, 0, 0, 0)] |
Текущая версия от 18:13, 14 мая 2023
Модуль 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)]