gpt4 book ai didi

python - 是否编译了 Python 模块?

转载 作者:太空狗 更新时间:2023-10-30 02:27:42 24 4
gpt4 key购买 nike

试图了解 python 库是否经过编译,因为我想知道我编写的解释代码是否会执行相同或更差。

例如我在某处看到它提到 numpy 和 scipy 是有效的,因为它们是编译的。我不认为这意味着编译了字节码,那么这是怎么做到的呢?它是用 cython 之类的东西编译成 c 的吗?或者它是使用类似 c 的语言编写并以兼容的方式编译的吗?

这是否适用于所有模块,还是视具体情况而定?

最佳答案

NumPy 和其他几个库是用 C 和其他语言(如 FORTRAN)编写的代码的部分包装器,编译后运行速度比 Python 快。这有助于避免 Python 中循环、指针间接和每个元素动态类型检查的成本。这在 this question 中有解释。 :

Numpy arrays are densely packed arrays of homogeneous type. Python lists, by contrast, are arrays of pointers to objects, even when all of them are of the same type. So, you get the benefits of locality of reference.

Also, many Numpy operations are implemented in C, avoiding the general cost of loops in Python, pointer indirection and per-element dynamic type checking. The speed boost depends on which operations you're performing, but a few orders of magnitude isn't uncommon in number crunching programs.

编译为字节码(.pyc 文件)的 Python 代码是一个单独的主题,其中编译 python 脚本以提高启动性能(参见 this question)。

关于python - 是否编译了 Python 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39722984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com