- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 python 程序中导入了一些包。但是很多只在程序开始时被调用。这些包是否保存在内存中,直到整个程序运行完毕?我可以在他们被调用释放内存后删除它们吗?
最佳答案
我不认为这是可能的 - 但即使是这样,通过删除加载的模块获得的内存通常是最小的。
运行 del module
在某些文件的代码中会不是 从内存中删除它:所有加载的模块都可以从全局 sys.modules
中获得字典。如果你从 sys.modules 中删除模块,你可以获得一些空间,但我认为 Python 仍然至少会保留对模块中定义的类的引用(即使你没有这些类的实例或其他引用)代码中的类。)
总而言之,大多数模块可以让您返回几千字节。如果您计划“卸载”在内存中具有多兆字节影响的模块(想想 Pandas/matplotlib/sqlalchemy),您将更不可能成功,因为这些代码库的复杂性意味着它们有很多内部交叉引用,您需要删除它们从 sys.modules 内部导入的所有内容。
如果设置基于像这样的多兆字节框架,并且您在非常有限的系统上运行(例如,树莓级迷你 PC,只有几 MB),您可以尝试在子进程中执行初始化,并且完成后终止该进程 - 这会给你一些保证内存被释放。但是除了有限的硬件之外,您根本不必理会它。
关于python - 我可以发布一个导入的包来节省python 中的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62649964/
我是 Go 新手,不知道如何使用 compress/gzip 包来发挥我的优势。基本上,我只是想写一些东西到一个文件中,gzip 它并通过另一个脚本直接从压缩格式中读取它。如果有人能给我一个如何做到这
我是一名优秀的程序员,十分优秀!