问题描述
我有一个 C++ 应用程序,它可以进行很多计算,但大多数时候它需要通过 PyRun_SimpleString()
执行简单的脚本,所以我很好奇 Python/C API 中是否有什么东西,接下来做什么会更快任务:
- 做像
x = 0.1
这样的简单赋值(随时间变化)? - 执行存储在字符串中的脚本(也许像编译一次以运行得更快)?
现在我通过执行 PyRun_SimpleString()
来完成所有这些任务。循环内性能损失是显着的。
解决方法
如您所料,运行 Python 代码确实有两个部分:解释和执行。请参阅 Py_CompileString
和 PyEval_EvalCode
。但是对于像 x=0.1
这样的简单语句,您甚至可以考虑通过 PyLong_FromDouble(0.1)