我有1000个自定义(编译为'.so')模块,我想在python
同时使用它们。每个此类模块的平均大小(100 [KB]
)。
有没有人知道每个python
导入的开销是什么(在操作系统上 - 假设.so
没有处理此问题)?意思是,开销是否等于磁盘上.so
文件的大小?或者它是固定的,无论.so
文件的大小?
我还没有到达那里,但很想知道当人们想要导入时对操作系统有什么影响,比如一次说10,000-50,000个自定义模块。
答案 0 :(得分:3)
导入许多共享库会有很大的时间开销 - 动态链接器会在加载阶段花费大量时间。动态链接器实际上针对数十到数百个共享对象进行了优化,而不是数千到数万个。
如果可能,请合并您的共享代码对象。
但是,一旦加载的大小可能比一个磁盘大小小一些,具体取决于文件中的其他信息(DWARF调试符号,不需要额外的ELF部分等)。