我正在使用一个库,当程序停止时,它不会释放所有内存。结果,重新启动程序时出现ENOMEM异常。有没有办法在程序重新启动时释放所有RAM内存?
目前,我正在使用硬重置作为解决方法,但我希望能够停止并重新启动程序,并让它在启动时清理 RAM。像这样:clean_ram()
. clean_ram()
将强制垃圾回收器释放所有分配的内存。
最好的方法是在C级别重新启动MicroPython解释器本身。退出 Python 程序并再次执行整个解释器设置。
在 Python 级别,您可以手动"取消导入"所有模块,然后调用 GC:
# main.py
# do not use any global imports here, except builtins
import gc, sys
while True:
import program
del program
for key in sys.modules:
del sys.modules[key]
gc.collect()
然后在program.py
做任何你想在main
做的事情.