python高性能计算:cython入门代码
三种实现的对比:
(1)纯python
x.py
def is_prime(num):
for j in range(2, num):
if (num%j)==0:
return False
return True
import time
a = time.time()
for i in range(10, 100000):
is_prime(i)
b = time.time()
print(b-a)
(2) x2.pyx
def is_prime(num):
for j in range(2, num):
if (num%j)==0:
return False
return True
import time
a = time.time()
for i in range(10, 100000):
is_prime(i)
b = time.time()
print(b-a)
编译文件:
x2_setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = 'Great Circle module v1',
ext_modules = cythonize("x2.pyx",
#compiler_directives={'language_level' : "3"}
# or "2" or "3str"
),
)
编译:
python x2_setup.py build_ext --inplace
(3) x3.pyx
def is_prime(num):
cdef int j
for j in range(2, num):
if (num%j)==0:
return False
return True
import time
a = time.time()
for i in range(10, 100000):
is_prime(i)
b = time.time()
print(b-a)
编译文件:
x3_setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = 'Great Circle module v1',
ext_modules = cythonize("x3.pyx",
#compiler_directives={'language_level' : "3"}
# or "2" or "3str"
),
)
编译:
python x3_setup.py build_ext --inplace
运行效果对比:
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
posted on 2024-07-30 19:55 Angry_Panda 阅读(10) 评论(0) 编辑 收藏 举报