基于这样的问题,比如什么使得C语言比Python更快?我了解到动态/静态类型并不是C语言比Python更快的主要原因。看起来主要是因为Python程序是解释执行的,而C语言程序是编译执行的。
我想知道,如果采用严格类型检查,能否缩小解释执行与编译执行之间的性能差距,从而成为改善解释执行Python程序性能的一种可行策略?
如果答案是肯定的,在专业开发环境中是否会这样做呢?
基于这样的问题,比如什么使得C语言比Python更快?我了解到动态/静态类型并不是C语言比Python更快的主要原因。看起来主要是因为Python程序是解释执行的,而C语言程序是编译执行的。
我想知道,如果采用严格类型检查,能否缩小解释执行与编译执行之间的性能差距,从而成为改善解释执行Python程序性能的一种可行策略?
如果答案是肯定的,在专业开发环境中是否会这样做呢?
当前版本的Python中,类型注解大多是给程序员提供一些提示和可能的验证工具,但编译器忽略了它们,在运行时字节码解释器也不使用它们,这类似于TypeScript的行为。
可能可以改变Python的语义,以利用静态类型在某些情况下生成更高效的字节码,并可能执行即时可执行代码生成(JIT)。先进的JavaScript引擎使用复杂的启发式方法实现此功能,而无需进行类型注释。这两种方法都可以帮助使Python程序更快,并且在某些情况下表现比等效的C代码更好。
还要注意,许多高级的Python软件包使用本地代码,采用C和其他语言编写,利用优化编译器、SIMD指令甚至多线程...使用这些库的程序中的Python代码并不占用时间,而性能与编译语言相当,同时为程序员提供了一个更简单的语言来表达他们的问题。
函数
和类
对象的__annotation__
属性中。如果在启动时创建这些属性的一次性成本对性能产生负面影响,那么你可能不应该首先使用Python。 - chepner