当直接在 C 中编写函数以用作 python 模块时,是否有任何数据可视化使用 Python C API 可以获得多少性能?
除了“C 更快”这一显而易见的事实之外;有没有比较 Python C API 和 C 的数据?
当直接在 C 中编写函数以用作 python 模块时,是否有任何数据可视化使用 Python C API 可以获得多少性能?
除了“C 更快”这一显而易见的事实之外;有没有比较 Python C API 和 C 的数据?
我不确定是否有任何简单的方法可以获取此类“数据”。这实际上取决于您在做什么,并且您必须考虑到将数据从 Python 端传输到 C 端并再次返回将比直接在 Python 中执行操作对系统造成额外的负担。
如果您正在进行大量计算,并且这些计算很复杂但无法在现有库中完成(例如“numpy”),那么它可能值得做。当然,计算不一定非得是“数学”,它可以是对大数组中的数据进行洗牌,或者进行if (x > y) z++;
类型操作。但是在将数据从“python”类型转换为“C”类型的数据并再转换回来之前,您确实需要做大量的工作。
这有点像问“这辆运动型汽车比那辆不太运动型汽车快多少”,如果你在一个交通拥堵的大城市开车,差别可能根本就没有——但如果你乘坐它们在赛道上,运动型汽车可以适当地伸展双腿,赢家是显而易见的。
在“汽车”主题中,“拥塞”是对 C 中一个非常小的函数的大量调用,这并没有做太多工作——“从 Python 转换为 C 并返回 Python 数据”将是拥塞/交通灯。如果你有大量的数据,那么你会得到更多的“赛道”效果。