mul*_*rse 2 python standard-library .so
大多数标准库是用 Python .py 文件编写的,但有些是在 Unix 上的 .so 文件和 Windows 上的 .pyd 文件中。例如 os 写在 os.py 中,而 pyexpat 写在 pyexpat.cpython-36m-darwin.so 中。这些 .so 库有什么特别之处?
.so文件是共享对象文件,它们是编译后的共享库。他们通常用编译语言像C,C++,Go等等。
Python 是一种解释型语言,用它编写的代码往往很慢,因为解释器需要遍历正在执行的每一行代码,将其转换为某种中间字节码,然后最终执行字节码。这可能很慢。
在性能受到关注的情况下,模块是用较低级别的语言C编写的,然后将其编译为共享对象文件。这些文件可以由 Python 解释器加载并像普通的 Python 模块一样使用。因为这些模块已经编译成机器码了,所以不用经过解释器就可以直接执行,所以比用Python写的等价代码要快很多。
以较低级别的语言编写,例如C还可以有效地使用内存,甚至可以释放全局解释器锁以利用多核并行性。诸如numpy, 之scipy类的科学模块就是这些示例。
| 归档时间: |
|
| 查看次数: |
2400 次 |
| 最近记录: |