为什么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模块提高速度?
答案 0 :(得分:5)
实际增量是一项非常简单的操作,大部分时间都不太可能。更有可能的是函数调用它们自己,而在f2
的情况下,你有调用ctypes的开销。
Ctypes可以通过允许您用C或C ++实现程序的非平凡,CPU密集型部分来提高性能。