This commit is contained in:
2025-07-29 10:37:06 +08:00
parent 6d7da71eda
commit 8131c17258
3 changed files with 38 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
import example
import time
def py_calculate(n):
result = 0
for i in range(n):
result += i
return result
n = 10**8
start = time.time()
py_result = py_calculate(n)
print(py_result)
py_time = time.time() - start
start = time.time()
cy_result = example.calculate(n)
print(cy_result)
cy_time = time.time() - start
print(f"Python 版本: {py_time:.6f}")
print(f"Cython 版本: {cy_time:.6f}")

View File

@@ -0,0 +1,11 @@
def calculate(int n):
cdef int i
cdef long long result = 0
# cdef int result = 0 # 这个类型在数值比较大的时候会溢出,结果不正确。
# result = 0 # 这个不声明类型,使用 Python 的 intPython 的整数是任意精度的,不会溢出,但性能会比 C 类型低。
for i in range(n):
result += i
return result

View File

@@ -0,0 +1,4 @@
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("example.pyx"))