ctypes vs pure python



为什么ctypes在我的代码中比纯python慢,用于增加变量?

from ctypes import *
import timeit
def f1():
    global t
    t += 1
def f2():
    p[0] += 1
t = 0
n = c_int(0)
p = pointer(n)
print(timeit.timeit("f1()", setup="from __main__ import f1")) # 0.3417885800008662
print(timeit.timeit("f2()", setup="from __main__ import f2")) # 0.5280102270189673
print(t) # 1000000
print(n.value) # 1000000

如何使用ctypes模块提高速度?

实际增量是一个非常简单的操作,不太可能花费大部分时间。更有可能的是函数调用自己,在f2的情况下,你有调用 ctypes 的开销。

Ctypes 允许您在 C 或 C++ 中实现程序中重要的 CPU 密集型部分,从而提供性能提升。

最新更新