严格输入会提高 Python 程序性能吗?

Mus*_*afa 4 c python compiler-construction interpreter

基于这样的问题What made C比Python更快?我了解到动态/静态类型并不是 C 比 Python 更快的主要原因。看起来很大程度上是因为 python 程序是解释性的,而 c 程序是编译性的。

我想知道严格类型是否足以缩小解释程序与编译程序的性能差距,以至于严格类型将成为事后提高解释Python程序性能的可行策略?

如果答案是肯定的,这是在专业开发环境中完成的吗?

chq*_*lie 5

在当前版本的 Python 中,类型注释主要是给程序员的提示,也可能是一些验证工具,但会被编译器忽略,并且不会在运行时被字节码解释器使用,这与 Typescript 的行为类似。

在某些情况下,可以更改 Python 的语义以利用静态类型来生成更高效的字节码,并可能执行及时的可执行代码生成 (JIT)。高级 Javascript 引擎使用复杂的启发式方法来实现这一点,而无需类型注释。这两种方法都可以帮助使 Python 程序更快,并且在某些情况下比同等的 C 代码执行得更好。

另请注意,许多高级 Python 包使用用 C 和其他语言编写的本机代码,利用优化编译器、SIMD 指令甚至多线程...使用这些库的程序中的 Python 代码不是花费时间的地方,其性能与编译语言相当,同时为程序员提供了一种更简单的语言来表达他们的问题。