gpt4 book ai didi

python - 我可以发布一个导入的包来节省python 中的内存吗?

转载 作者:行者123 更新时间:2023-12-04 15:24:12 43 4
gpt4 key购买 nike

我在 python 程序中导入了一些包。但是很多只在程序开始时被调用。这些包是否保存在内存中,直到整个程序运行完毕?我可以在他们被调用释放内存后删除它们吗?

最佳答案

我不认为这是可能的 - 但即使是这样,通过删除加载的模块获得的内存通常是最小的。
运行 del module在某些文件的代码中会不是 从内存中删除它:所有加载的模块都可以从全局 sys.modules 中获得字典。如果你从 sys.modules 中删除模块,你可以获得一些空间,但我认为 Python 仍然至少会保留对模块中定义的类的引用(即使你没有这些类的实例或其他引用)代码中的类。)
总而言之,大多数模块可以让您返回几千字节。如果您计划“卸载”在内存中具有多兆字节影响的模块(想想 Pandas/matplotlib/sqlalchemy),您将更不可能成功,因为这些代码库的复杂性意味着它们有很多内部交叉引用,您需要删除它们从 sys.modules 内部导入的所有内容。
如果设置基于像这样的多兆字节框架,并且您在非常有限的系统上运行(例如,树莓级迷你 PC,只有几 MB),您可以尝试在子进程中执行初始化,并且完成后终止该进程 - 这会给你一些保证内存被释放。但是除了有限的硬件之外,您根本不必理会它。

关于python - 我可以发布一个导入的包来节省python 中的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62649964/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com