在我正在编写的游戏中,我使用我编写的 2D vector 类来处理对象的速度。由于屏幕上有很多对象,所以每帧都会调用很多次,所以我可以提高它的速度。
它非常简单,主要由相关数学函数的包装器组成。用 C 语言重写会很简单,但我不确定这样做是否会产生任何显着差异,因为它实际上所做的只是调用底层数学函数,加法、乘法或除法。
那么,我的问题是在什么情况下用 C 重写才有意义?您会在哪些地方看到显着的速度提升,在不重写大量程序的情况下在哪些地方可以看到合理的速度提升?
最佳答案
如果你正在处理 vector ,请输入 numpy先试一试。如果您明智地利用 numpy 的 vector 操作函数,您的速度很可能会接近 C。
除此之外,您的问题很有启发性。如果您的代码太慢:
- 对其进行分析 - 您可能会用 Python 对其进行改进
- 使用正确优化的基于 C 的库(在您的情况下为 numpy)
- 试试
psyco
- 尝试用
cython
重写部分 - 如果一切都失败了,用C重写
关于python - 什么时候用 C 重写 Python 模块有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2096334/