我正在使用Cython制作我的
Python代码更高效。我已经阅读了Cython的函数cython -a filename.pyx
来查看我的cython代码的“typedness”。这是来自Cython网页的简短reference。我的环境是Windows 7,Eclipse PyDev,Python 2.7.5 32位,Cython 0.20.1 32位,MinGW 32位。
以下是我的代码报告:
黄色是否意味着有效或无效的代码?越黄越多......什么?
另一个问题是,我可以点击编号的行并打开以下报告(例如第23行):
这是什么意思?附:如果你看不到足够好的图像 - >右键单击 - >查看图像(在Windows 7上);)
Thnx任何帮助=)
更新
如果有人想在这里尝试我的玩具代码,他们是:
hello.pyx
import time
cdef char say_hello_to(char name):
print("Hello %s!" % name)
cdef double f(double x) except? -2:
return x**2-x
cdef double integrate_f(double a, double b, int N) except? -2:
cdef int i
cdef double s, dx
s = 0
dx = (b-a)/N
for i in range(N):
s += f(a+i*dx)
return s * dx
cpdef p():
s = 0
for i in range(0, 1000000):
c = time.time()
integrate_f(0,100,5)
s += time.time()- c
print s
test_cython.py
import hello as hel
hel.p()
setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = 'Hello world app',
ext_modules = cythonize("hello.pyx"),
)
从命令行提示符我使用命令(生成C,pyd等文件):
python setup.py install build --compiler=mingw32
要生成我使用的报告:
cython -a hello.pyx
答案 0 :(得分:2)
这或多或少是你写的。更确切地说:
淡黄色线信号Cython命令,它不是直接转换为纯C代码,而是通过调用CPython API来完成工作。这些行包括:
无论如何,这表明事情可能会得到改善。
答案 1 :(得分:1)
我想我也许已经得到了它。如果我错了,有人可以纠正我:
这条线越“黄”,那么效率就越低
最有效的线条是白色线条,因为它们被翻译成纯C代码。