由于有多种方法可以为 python 编写二进制模块,如果我希望尽可能提高某些代码段的性能,我希望那些有经验的人可以就最佳方法提出建议。
据我了解,可以使用 python/numpy C-api 编写扩展,或者包装一些已经编写好的纯 C/C++/Fortran 函数,以便从 python 代码中调用。
当然,像 Cython 这样的工具是最简单的方法,但我认为手动编写代码可以提供更好的控制并提供更好的性能。
问题,可能是一般性的,是使用哪种方法。编写 C 或 C++ 扩展?包装外部 C/C++ 函数或对 python 函数使用回调?
我在阅读了 Langtangen 的“用于计算科学的 Python 脚本”的第 10 章后写了这个问题,其中比较了 python 和 C 之间的几种接口方法。