L'utilisation d'un décorateur pour mesurer le temps d'exécution des fonctions peut être pratique. Il y a un exemple à http://www.zopyx.com/blog/a-python-decorator-for-measuring-the-execution-time-of-methods. Ci-dessous j'ai collé sans vergogne le code du site mentionné ci-dessus afin que l'exemple existe à SO dans le cas où le site est effacé du réseau.
import time
def timeit(method):
def timed(*args, **kw):
ts = time.time()
result = method(*args, **kw)
te = time.time()
print '%r (%r, %r) %2.2f sec' % \
(method.__name__, args, kw, te-ts)
return result
return timed
class Foo(object):
@timeit
def foo(self, a=2, b=3):
time.sleep(0.2)
@timeit
def f1():
time.sleep(1)
print 'f1'
@timeit
def f2(a):
time.sleep(2)
print 'f2',a
@timeit
def f3(a, *args, **kw):
time.sleep(0.3)
print 'f3', args, kw
f1()
f2(42)
f3(42, 43, foo=2)
Foo().foo()
// John
similaires à http://stackoverflow.com/questions/889900/accurate-timing-of-functions-in-python –
Ces deux fils étaient sur le point de synchronisation * fonctions *, qui peuvent ou peuvent ne pas être ce que est nécessaire de faire des "algorithmes de synchronisation", ce qui me semble être une tâche mal définie. Cela peut nécessiter des choses beaucoup plus complexes que de chronométrer une fonction. –
En outre, les questions sur les algorithmes (tant qu'ils sont liés à la programmation) sont certainement les bienvenus sur Stack Overflow. –