MemoryError:内存分配失败Micropython

Posted

技术标签:

【中文标题】MemoryError:内存分配失败Micropython【英文标题】:MemoryError: memory allocation failed Micropython 【发布时间】:2022-01-22 09:54:35 【问题描述】:

我正在使用带有很多组件的 ESP32 卡,特别是 ssd1306 屏幕,我找到了一个可以在屏幕上放置字母的库,简而言之,当我在测试中调用该库时遇到问题问题是这个:

Traceback (most recent call last):
File "main.py", line 25, in <module>
File "hello_world.py", line 1, in <module>
MemoryError: memory allocation failed, allocating 136 bytes

我把图书馆放在这里:https://github.com/nickpmulder/ssd1306big/blob/main/ssd1306big.py

还有我的世界:

import ssd1306big
import time

write = ssd1306big

while True:

write.clear()

write.wrap("Hello")

time.sleep(5)

【问题讨论】:

【参考方案1】:

如果您有很多组件和库并希望最大限度地减少内存使用量,您有两个选择:将库冻结到固件中(最佳内存优化选项)或使用 mpy-cross 将库“编译”成字节码以降低内存使用率. https://github.com/robert-hh/Shared-Stuff

【讨论】:

以上是关于MemoryError:内存分配失败Micropython的主要内容,如果未能解决你的问题,请参考以下文章

Python MemoryError:无法分配数组内存

在 Ruby 中分配内存失败(No MemoryError)?

场景应用:Java 出现 Out Of MemoryError(OOM 错误)的原因有哪些?出现 OOM 错误后,怎么解决?

MemoryError:无法为形状(725000、277、76)和数据类型 float64 的数组分配 30.4 GiB

BigQuery 代码因使用 pandas python 客户端库的 MemoryError 而失败

如何解决 pandas 的内存分配问题?