当前位置:  开发笔记 > 编程语言 > 正文

从Python调用C Math函数的高效解决方案

如何解决《从Python调用CMath函数的高效解决方案》经验,为你挑选了1个好方法。

我听说过从Python代码调用C函数的不同方法,比如ctypes,cython,swig,Boost.python等.当然,每个方法都有优缺点.我的问题是关于效率.我需要从Python调用C数值函数.这种C函数的典型示例是:

double f(double x){
  return sin(x)+cos(x)-pow(2,x) + x*x;
}

调用需要在一次运行中迭代2000-200000次.

在这样的背景下,C->Python我应该使用哪种变压器?



1> 5gon12eder..:

调用用C实现的函数不会神奇地使程序运行得更快.不执行用Python编写的代码可能会加速您的程序.因此,通过将这样一个简单的函数移动到C例程中,您将无法获得任何重要信息.如果你在一个紧凑的循环中调用它,函数本身可能很快,但用Python编写的循环的开销将完全占主导地位.因此,一般的想法是将尽可能大的任务移动到C例程中.在您的示例中,这可能是整个循环.一旦你用一个C函数调用完成的工作量足够大,函数调用开销本身就会变得微不足道,所以你不必担心这么多.调用该功能,但您觉得最方便.机会很高,它不会以可衡量的方式影响性能.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有