Python C API性能提升?

时间:2013-09-22 22:13:25

标签: python c python-c-api

是否有任何数据可视化在使用Python C API直接在C中编写函数以用作python模块时可以获得多少性能?

除了“C更快”这一显而易见的事实;有没有比较Python C API和C的数据?

1 个答案:

答案 0 :(得分:3)

我不确定是否有任何简单的方法可以获得这样的“数据”。这实际上取决于你正在做什么,你必须考虑到将数据从Python端传输到C端再返回将是系统的额外负载,而不是直接在Python中执行操作。

如果您正在进行大量计算,并且这些计算很复杂但无法在现有库中完成(例如“numpy”),则可能值得这样做。当然,计算不一定必须是“数学”,它可能是在大数组中移动数据,或者进行if (x > y) z++;类型的操作。但是,在将数据从“python”转换为“C”类型的数据并将其重新转换为有意义之前,您确实需要做大量的事情。

这有点像问“这款运动型汽车的速度比不那么运动的汽车快多少”,如果你在拥挤不堪的大城市开车,差异可能根本不是 - 但如果你带他们去赛道,运动型汽车可以适当地伸展双腿,胜利者非常明显。

在“car”主题中,“拥塞”是对C中一个非常小的函数的大量调用,它没有做太多工作 - “从Python转换为C并返回到Python数据”将是拥堵/交通灯。如果你有大量的数据,那么你会得到更多的“赛道”效果。

相关问题