【问题标题】:Python3 import performancePython3 导入性能
【发布时间】:2015-03-14 23:31:37
【问题描述】:

如果我有 100 个导入,我的程序会因为 Python 在运行时查找名称(并查看我的所有 100 个导入)而导致性能更差吗?

我正在创建一个游戏,将每个区域描述为包含单个类的单独模块会容易得多。

【问题讨论】:

  • 是的,它的表现会更差,重要的问题是有多差。您可能不会注意到它。
  • 当所有imports 都被加载时,性能会受到影响,但是在当前命名空间中查找名称是基于字典的,因此O(1)。 Python 不需要查看导入,因为您指定它应该查看哪个模块(例如import random; random.choice)。目前尚不清楚您的第二段与第一段有何关系。
  • 只是对外说,每个模块只包含一个词。
  • 哦,如果您的意思是将所有类放在一个文件中或 import 从一大堆文件中一次一个地保存它们会更有效,我怀疑您会看到这么大的区别。不过,每个文件一个似乎有点多。你能找出共享一个文件的相关类组吗?
  • 所有默认区域都在一个文件中描述,但是,我打算让用户自己定义,如果游戏成功,那可能是一大堆区域。

标签: performance python-3.x import


【解决方案1】:

第一次加载模块时,初始性能会受到影响。第二,第三,第四,...,模块加载的时间,Python 从它的缓存中获取它们,所以根本没有性能损失。

话虽如此,性能应该是次要的——不过,作为一个游戏,所有的导入都是预先完成的。

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 2019-01-05
    相关资源
    最近更新 更多