【发布时间】:2021-06-10 08:19:27
【问题描述】:
从之前关于 SO 的问题(如 this 和 this)来看,简单的 import 关键字似乎不会延迟加载模块。但是,当我运行一个简单的测试来检查 import 语句之前和之后的内存使用情况时 - 似乎某些模块确实是延迟加载的。
例子:
>>> import django
>>> from django.http import HttpResponse
内存使用(第一个free 命令在第一次导入后运行,第二个free 命令在上述第二次导入后运行):
$ free -m
total used free shared buff/cache available
Mem: 3935 1773 399 0 1762 1889
$ free -m
total used free shared buff/cache available
Mem: 3935 1787 386 0 1762 1875
注意已用内存从 1773MB 增加到 1787MB。
我想了解一个模块何时真正加载到内存中?为什么import django 命令没有将所有 django 模块加载到内存中?
【问题讨论】:
-
@MisterMiyagi 我期待
import django确实会加载django 中的所有模块。但正如@Ron Serruya 的回答所指出的那样,django init 文件似乎没有加载这些模块,所以现在有意义了。
标签: python import python-import