小小张说故事
Python 的 import 为什么第二次几乎不要钱?sys.modules 缓存与模块单例的代价
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
小小张说故事
社区首页
>
专栏
>
Python 的 import 为什么第二次几乎不要钱?sys.modules 缓存与模块单例的代价
Python 的 import 为什么第二次几乎不要钱?sys.modules 缓存与模块单例的代价
小小张说故事
关注
发布于 2026-10-19 11:18:35
发布于 2026-10-19 11:18:35
78
0
举报
概述
import 第二次几乎不要钱,靠的是 sys.modules 字典:模块加载过,再 import 只是 230 纳秒的字典查询;但首次 import 要走查找→编译→执行全链路,1500 个函数的模块冷启动 46.8 毫秒,有 pyc 缓存降到 3.9 毫秒。8 组实验讲清缓存机制、模块单例、pyc 到底省了什么与循环 import 的两种死法。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
python
目录
Python 的 import 为什么第二次几乎不要钱?sys.modules 缓存与模块单例的代价
1. 第二次 import 只是一次字典查询
2. sys.modules:整个 import 系统的缓存表
3. 打破单例的两种方式,代价完全不同
4. pyc 省的是编译,不是执行
5. importtime:把 import 开销摊开看
6. 循环 import:为什么有时能跑,有时崩
7. from X import Y 并不比 import X 便宜
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档