我发现了我的python代码中的瓶颈,玩弄了speco等,然后决定编写一个c/c++扩展来提高性能.

在swig的帮助下,你几乎不需要关心争论等问题.一切都很好.

现在我的问题是:swig创建了一个相当大的py文件,在调用实际的.pyd或.所以,编码.

你们中有没有人有过这样的经验:如果你手工编写这个文件或者让swig来做,是否会获得更多的性能.

推荐答案

可以肯定的是,手动执行此操作将始终获得性能yield ,但与执行此操作所需的工作量相比,yield 将非常小.我没有任何数字可以给您,但我不推荐这样做,因为您将需要手动维护界面,如果您的模块很大,这不是一个选项!

您 Select 使用脚本语言是正确的,因为您希望快速开发.这样你就避免了早期优化综合症,现在你想优化瓶颈部分,太棒了!但是如果你手工操作C/python接口,你肯定会陷入早期优化综合症.

如果你想要一些界面代码更少的东西,你可以考虑从你的C代码中创建一个dll,然后直接从python和cstruct中使用这个库.

如果您只想在程序中使用python代码,那么还要考虑Cython.

C++相关问答推荐

如何确保内存分配在地址附近?

为什么可以通过指向常量int的指针间接地改变整数的值?

为什么GCC可以调用未定义的函数?

减法运算结果的平方的最快方法?

SDL 2.0-从数组渲染纹理

C语言中的strstr问题

进程已完成,退出代码为138 Clion

我怎么才能用GCC编译一个c库,让它包含另一个库呢?

GDB输出ARM助记符

防止C++中递归函数使用堆栈内存

为什么指针运算会产生错误的结果?

不同出处的指针可以相等吗?

处理EPOLL_WAIT中的接收数据和连接关闭信号

如何在C++中安全地进行浮点运算

通过char*访问指针的对象表示是未定义的行为吗?

将指针的地址加载到寄存器内联拇指组件中

System V 消息队列由于某种原因定期重置

clion.我无法理解 Clion 中发生的 scanf 错误

将字节/字符序列写入标准输出的最简单形式

将十六进制值或十进制值分配给 uint16_t 有什么区别?