ctypes против чистого питона

python performance ctypes

372 просмотра

1 ответ

861 Репутация автора

Почему 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?

Автор: Fred Источник Размещён: 22.01.2016 05:41

Ответы (1)


5 плюса

11843 Репутация автора

Решение

Фактическое приращение является очень простой операцией и вряд ли займет большую часть времени. Скорее всего, это вызовы самих функций, и в случае у f2вас есть накладные расходы при вызове в ctypes.

Ctypes может обеспечить выигрыш в производительности, позволяя вам реализовывать нетривиальные, ресурсоемкие части вашей программы на C или C ++.

Автор: James Hopkin Размещён: 22.01.2016 05:55
Вопросы из категории :
32x32