首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 的 import 为什么第二次几乎不要钱?sys.modules 缓存与模块单例的代价

Python 的 import 为什么第二次几乎不要钱?sys.modules 缓存与模块单例的代价

作者头像
小小张说故事
发布于 2026-10-19 11:18:35
发布于 2026-10-19 11:18:35
780
举报
概述
import 第二次几乎不要钱,靠的是 sys.modules 字典:模块加载过,再 import 只是 230 纳秒的字典查询;但首次 import 要走查找→编译→执行全链路,1500 个函数的模块冷启动 46.8 毫秒,有 pyc 缓存降到 3.9 毫秒。8 组实验讲清缓存机制、模块单例、pyc 到底省了什么与循环 import 的两种死法。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 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 归档