让你的蟒蛇更快一点

raf*_*afa 0 python makefile

我正在主目录中构建python 2.6.6并尝试优化我正在使用的包的速度和内存使用情况.阅读这个页面,有人说CFLAGS='-g -O2'应该让它更快.

经过一些搜索,我读到它是你传递给编译器的某种标志,但它们没有解释为什么这会优化python速度(实际上,似乎其他值优化了其他东西,比如ruby).

我想更好地了解它,以便在我正在做的事情中获得更多性能,因为目前需要花费很多时间.有没有人可以解释这些标志意味着什么,在什么意义上它可以提高蟒蛇的速度?谢谢

Mar*_*ers 5

-O2标志指示C编译器进行某些优化选择,请参阅GCC优化标志文档.

Python解释器是用C语言编写的; 优化编译器生成的机器代码意味着程序可以更快运行,因为代码避免了一些常见的速度瓶颈.这不仅适用于Python.

缺点是某些积极的优化可能会引入错误或降低速度,因为对这些优化的假设结果并非如此.有效的方法因项目而异; 如果没有深入了解优化的内容以及全面的测试套件来捕捉所引入的任何问题,除非有知识的人告诉您使用优化设置,否则应远离这些标志.

你最好专注于优化自己的Python代码; 那里有更大的收获.描述您的代码,重新考虑数据结构,如果需要,可以将C中的部分重写为Python扩展.有时你正在处理的问题空间是某些任务需要时间.