ctypes vs纯python

时间:2016-01-22 17:41:09

标签: python performance ctypes

为什么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模块提高速度?

1 个答案:

答案 0 :(得分:5)

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

Ctypes可以通过允许您用C或C ++实现程序的非平凡,CPU密集型部分来提高性能。