在Python中使用内置库会受到惩罚吗?

在Python中使用内置库会受到惩罚吗?,python,performance,dependencies,standard-library,Python,Performance,Dependencies,Standard Library,我最近在考虑标准库,并在编程中使用它们。我开始想知道如何调用库,我听到了很多关于依赖关系和管理它们的讨论,以避免不必要的模块和诸如此类的东西使程序过载。因此,我想知道在使用标准库中的函数和模块时,资源使用是否会有额外的负载/增加 例如,如果我编写了一个完全由标准lib函数构建的程序,而没有我自己的代码(这意味着我有大量的import语句),我会看到性能下降吗?或者标准库是否加载了每个程序,而不管它是否被调用?因此,它是标准库的一部分 谢谢各位,如果我还不够清楚的话,很高兴详细说明我的问题。性能影

我最近在考虑标准库,并在编程中使用它们。我开始想知道如何调用库,我听到了很多关于依赖关系和管理它们的讨论,以避免不必要的模块和诸如此类的东西使程序过载。因此,我想知道在使用标准库中的函数和模块时,资源使用是否会有额外的负载/增加

例如,如果我编写了一个完全由标准lib函数构建的程序,而没有我自己的代码(这意味着我有大量的import语句),我会看到性能下降吗?或者标准库是否加载了每个程序,而不管它是否被调用?因此,它是标准库的一部分


谢谢各位,如果我还不够清楚的话,很高兴详细说明我的问题。

性能影响很小

第一次导入模块时,会将模块字节码和对象加载到内存中(存储在
sys.modules
映射中)。加载将占用少量的时间和内存

你必须是一个大得多的项目才能开始起作用。Mercurial项目非常关心启动时间(命令行客户机必须具有响应性和快速性),它使用延迟加载方案,将导入的模块加载推迟到实际访问。这样,项目可以引用数百个模块(和扩展),但实际上只能加载当前命令行选项所需的模块


另一种选择是由您自己的代码来定义功能,但执行字节码也需要时间和内存,但另一个缺点是,您可能会引入bug或犯下标准库多年来设法消除的设计错误。

嘿,John,那60年的午睡怎么样。睡眠充足?取决于库和实现。在C版本中,一些代码嵌入在基本代码中,因此不会有任何额外的开销。要获得这些内容的列表,请查看Modules和Python目录下的源代码(例如Python/sysmodule.c)。所以说“内置”(你的标题)和“标准”(你的文本)不是一回事。@ChristianDean身体上,我感觉很棒。我会带自己去开门。