性能比较 Static Typing Python 3.6+ vs Cython
Performance comparison Static Typing Python 3.6+ vs Cython
最近 Python 3.6 添加了静态类型作为强制某些类型的一种方式。我以前从 Cython 获得的相同功能,与 vanilla Python.
相比,获得了高度优化的功能
那么我的问题是:使用新的 Python 静态类型时,我们是否也会获得显着的性能提升? pros/cons 每种方法?
Python 中的静态类型不会使其成为编译型编程语言。因此,在性能方面,您应该始终从 Cython 获得更好的性能(编译应始终优于解释)。
Python 新添加的静态类型的主要目的是以无缝方式执行类型检查,同时牺牲了 Python 的一些理念。
简而言之:Cython 用于速度,Python3.6 用于 interpreted/more pythonic 方法。
CPython 3.7 或更早版本的任何现有版本中都没有静态类型。
CPython 3.6 中对可选 类型注释 的支持(也向后移植到 3.5)有助于静态代码分析器等外部工具验证类型在程序中的使用是否一致.
类型提示对字节码编译或执行没有影响。
In contrast to variable declarations in statically typed languages, the goal of annotation syntax is to provide an easy way to specify structured type metadata for third party tools and libraries via the abstract syntax tree and the annotations attribute.
请注意,在 Cython 中可以使用类型提示语法来定义 C 类型 (Type Declaration Syntax)。
最近 Python 3.6 添加了静态类型作为强制某些类型的一种方式。我以前从 Cython 获得的相同功能,与 vanilla Python.
相比,获得了高度优化的功能那么我的问题是:使用新的 Python 静态类型时,我们是否也会获得显着的性能提升? pros/cons 每种方法?
Python 中的静态类型不会使其成为编译型编程语言。因此,在性能方面,您应该始终从 Cython 获得更好的性能(编译应始终优于解释)。
Python 新添加的静态类型的主要目的是以无缝方式执行类型检查,同时牺牲了 Python 的一些理念。
简而言之:Cython 用于速度,Python3.6 用于 interpreted/more pythonic 方法。
CPython 3.7 或更早版本的任何现有版本中都没有静态类型。
CPython 3.6 中对可选 类型注释 的支持(也向后移植到 3.5)有助于静态代码分析器等外部工具验证类型在程序中的使用是否一致.
类型提示对字节码编译或执行没有影响。
In contrast to variable declarations in statically typed languages, the goal of annotation syntax is to provide an easy way to specify structured type metadata for third party tools and libraries via the abstract syntax tree and the annotations attribute.
请注意,在 Cython 中可以使用类型提示语法来定义 C 类型 (Type Declaration Syntax)。