Ответ 1
В моих старых опытах я помню, что я обнаружил, что иногда вычисление частей функции (метода) может улучшить производительность:
Я просто переучился, используя следующий простой код:
n = 1000000
def compute(n):
j = 0
for i in xrange(n):
j += 1
tic()
compute(n)
toc()
>>> 0.271 s
tic()
j = 0
for i in xrange(n):
j += 1
toc()
>>> 0.849 s
Результат показывает 0.271s для первого (используя вычисление) против 0.849s как встроенный код. Это заметное улучшение, не меняя ничего в основной части вычислений! Таким образом, точка использует метод, который может улучшить производительность.
Вот код, который вы можете использовать для сравнения производительности:
from __future__ import division
from time import clock
def compute(n):
j = 0
for i in xrange(n):
j += 1
n = 1000000
print 'solution (2) using a method call...'
t0 = clock()
compute(n)
print clock()-t0
#>>> ~0.2415... #faster (solution 2)
print 'solution (1) all inline code...'
t0 = clock()
j = 0
for i in xrange(n):
j += 1
print clock()-t0
#>>> ~0.6169... #slower (solution 1)