2017-06-20 111 views
3

我最近正在考虑使用标准库并在编程中使用它们。我想知道如何调用库,我听到很多关于依赖的讨论并对它们进行管理,以避免使用不必要的模块和不必要的模块来重载程序。所以我想知道在使用标准库中的函数和模块时是否有额外的负载/资源使用增加。例如,如果我写了一个完全由标准库函数构建的程序,并且没有我自己的代码(这意味着我有大量的导入语句),我会看到性能下降吗?或者是每个程序加载的标准库,无论它是否被调用?因此它是标准库的一部分。在Python中使用内置库有没有惩罚?

谢谢你们,如果我还不够清楚,很乐意详细说明我的问题。

+1

嘿,约翰,那是60岁小睡过程。足够的睡眠? –

+1

取决于图书馆和实施。在C版本中,有些嵌入在基本代码中,所以不会有任何额外的开销。要获得这些列表,请查看Modules和Python目录下的源代码(例如Python/sysmodule.c)。所以说“内置”(你的标题)和“标准”(你的文本)不是一回事。 – cdarke

+1

@ChristianDean身体上,我感觉很棒。 我将展示自己的大门。 –

回答

6

性能影响很小。

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

你必须是一个更大的项目才能开始重要。 Mercurial项目非常关心启动时间(一个命令行客户端必须快速响应),它使用延迟加载方案,其中导入的模块加载被延迟直到实际访问。通过这种方式,项目可以引用数百个模块(和扩展),但只能实际加载当前命令行选项所需的那些模块。

另一种方法是用你自己的代码来定义功能,但是执行该字节代码的时候也会花费时间和内存,但是另外一个缺点就是你可能会引入错误或者设计错误,标准库已经设法消除多年。

相关问题