我想將我的Python代碼移植到C,但在此之前,我做了性能測試,但看起來並沒有改善性能。Cython性能測試
首先C程序:
#include <stdio.h>
main()
{
printf("hello world \n");
}
[[email protected] c]$ gcc test.c
[[email protected] c]$ time ./a.out
hello world
real 0m0.001s
user 0m0.000s
sys 0m0.000s
二Python程序:
#!/usr/bin/env python
print "hello world \n"
[[email protected] c]$ time python test.py
hello world
real 0m0.024s
user 0m0.020s
sys 0m0.003s
三分之一用Cython ...
test.py
print "hello world \n"
[[email protected] c]$ cython --embed test.py
[[email protected] c]$ gcc $CFLAGS -I/usr/include/python2.6 -o test test.c -lpython2.6 -lpthread -lm -lutil -ldl
[[email protected] c]$ time ./test
hello world
real 0m0.024s
user 0m0.019s
sys 0m0.004s
所以對我來說,它看起來像用Cython沒有真正提高任何表現。任何想法爲什麼以及如何我可以解決這個問題作爲cython應該使python代碼運行速度更快?
Cython刪除字節碼調度開銷,並且如果您給它提供靜態類型註釋,有時可以刪除Python對象。它不能神奇地將所有的Python代碼編譯成等效的'libc'調用,並且不能調用解釋器的C API來實現大多數Python語義。試着比較一個循環增加十億個整數。 – delnan 2012-02-20 12:56:42