Py是解释型语言,编译时不直接翻译成汇编语言而是字节码,在py的虚拟机中运行,在进行数据运算的场下,存在性能瓶颈。C++性能卓越,但学习门槛高且开发效率比py低,可用于密集型计算并用Python进行调用。
也可以用golang,后面可补充
将影响性能的核心代码用c++/go来写,而逻辑开发由py完成
ctypes
?是 Python 的外部函数库。它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装(需要先将C++编写的代码转为动态链接库..dll)官网:https://pypi.org/project/pybind11
官网:https://pypi.org/project/pythran
本文介绍pythran的使用方法
pip install pythran
pythran --help
pythran可以用py的import代码导入,也可以直接在命令行中执行
pythran -e cli_foo.py
-p pythran.optimizations.ConstantFolding
-o cli_foo.hpp
# 编译(未验证)
`pythran-config --compiler --cflags` -std=C++11 cli_foo.cpp -o cli_foo
vim cli_foo.hpp
include cli_foo.hpp
int main(){
foo()();
return 0;
}
注意:
pythran无法支持所有py的功能,只有矩阵计算与数学的数据处理,支持较好。其他功能扩展,比如引入第三方库,则需要自己做一些额外的处理。