2024-04-24 23:41:19 发布
网友
用posix和通用技术软件开发的说法。纯python(不是cython或c编译的库)模块的import是否构成动态链接?在
import
不,加载纯Python模块不是一种动态链接。在
传统的动态链接将机器代码加载到一个新的内存块中,并允许多个可执行进程访问(动态链接库只需加载一次,其余由虚拟内存负责)。链接器在运行时连接可执行文件和动态库。在
另一方面,加载Python模块会将模块的字节码加载到Python进程中(如果此时没有可用的字节码缓存,Python将编译源代码)。加载的模块在进程之间不共享。不需要进行任何转换,运行字节码的结果会在Python堆中生成新的对象,解释器中的所有现有代码都可以与之交互。在
这个过程不涉及链接器,没有单独的内存,对于操作系统来说,没有单独的内存段需要管理,因为模块只是Python进程内存的一部分。在
不,加载纯Python模块不是一种动态链接。在
传统的动态链接将机器代码加载到一个新的内存块中,并允许多个可执行进程访问(动态链接库只需加载一次,其余由虚拟内存负责)。链接器在运行时连接可执行文件和动态库。在
另一方面,加载Python模块会将模块的字节码加载到Python进程中(如果此时没有可用的字节码缓存,Python将编译源代码)。加载的模块在进程之间不共享。不需要进行任何转换,运行字节码的结果会在Python堆中生成新的对象,解释器中的所有现有代码都可以与之交互。在
这个过程不涉及链接器,没有单独的内存,对于操作系统来说,没有单独的内存段需要管理,因为模块只是Python进程内存的一部分。在
相关问题 更多 >
编程相关推荐