我最近在考虑标准库并在编程中使用它们。我想知道调用库,我听到很多关于依赖关系和管理它们的讨论,以免不必要的模块和诸如此类的东西使程序过载。所以我想知道在使用标准库中的函数和模块时是否有额外的资源使用负载/增加。
例如,如果我编写的程序完全由标准的lib函数构成,而不是我自己的代码(意味着我有大量的import语句),我会看到性能下降吗?或者是每个程序加载的标准库,无论它是否被调用?因此它是标准库的一部分。
谢谢你们,如果我还不够清楚的话,很高兴详细说明我的问题。
答案 0 :(得分:6)
性能影响很小。
第一次导入模块 将模块字节码和对象加载到内存中(存储在sys.modules
映射中)。这种加载需要花费少量时间和少量内存。
你必须成为一个更大的项目才能开始重要。 Mercurial项目深入关注启动时间(命令行客户端必须响应快速),使用延迟加载方案,其中导入的模块加载延迟到实际访问。这样,项目可以引用数百个模块(和扩展),但只实际加载当前命令行选项所需的模块。
替代方法是使用您自己的代码来定义功能,但是为此执行字节码也需要时间和内存,但增加的缺点是您可能会引入错误或制作错误标准图书馆多年来设法消除的设计错误。