用python重写c/c++程序的一部分

2024-04-18 23:33:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python为一个流行的3d程序开发一个插件接口,名为blender3d,其目的是通过python扩展程序的一些功能。在

现在我的问题是我正在评估性能影响。我将用python编写的东西替换用c代码编写的现有功能。在

我担心这可能会减慢应用程序的速度,因为我要替换的功能是实时执行的,而且必须非常快。它由一个普通的c函数组成,它只是将一些多边形分割成三角形。在

因此,我对通常不超过30或40个输入点的数据执行的操作。我对它们执行的操作最多有log(n)*n^2的复杂度。在

但是我将每秒创建大量的python对象,因此我已经准备好实现池来回收这些对象。在

现在我最担心的是python代码的运行速度会比c代码慢100倍,并会降低应用程序的速度。我应该担心吗?在

我最多在一个python函数调用中进行8500次计算。每次呈现应用程序界面时都会调用此函数。在


Tags: 数据对象函数代码程序目的功能log
1条回答
网友
1楼 · 发布于 2024-04-18 23:33:21

使用c或python的问题将取决于您的工作用途。这是搅拌机开发人员在搅拌机开发中接受的功能吗?你认为很多搅拌机用户会想用它吗?python插件允许您在主blender开发之外开发您的工作,并允许许多用户访问它,而对c代码的一个补丁需要用户编译自己的版本将减少用户。在

您还可以将c代码编译为二进制库,该库包含在python插件中,并作为python模块加载。请看Pyrovevil使用cython-molecular和{a3}创建的两个插件,在他的main website上有一些预构建的二进制文件。我不确定使用cython是否会使python模块的创建更容易,您也可以使用cython作为python和库之间的粘合剂。在

相关问题 更多 >