2013-07-29 2 views
2

Lorsque j'appelle cProfile.run('myFunction1') il revient avec un certain nombre d'appels de fonction.cProfil.run appels de fonction vs complexité

J'aimerais comparer différentes versions de myFunction et trouver celle qui est la plus efficace (par exemple avec le moins de complexité). Quelle est la connexion entre le function calls et le complexity?

Que disent les appels de fonction?

Si j'ai deux fonctions, la fonction ayant le moins d'appels de fonction est-elle la plus efficace?

Répondre

1

Le nombre d'appels de fonction est exactement ce que signifie: nombre d'appels de (sous-) fonctions. Il n'y a pas de corrélation stricte entre les appels de fonction et la complexité. Pour trouver le plus mise en œuvre efficace vous devriez essayer de mapper votre fonction contre différents ensembles d'arguments et de le chronométrer. Utilisation du module timeit.

Le calcul de la complexité d'une fonction est un argument trop large pour une seule réponse. Cela dépend de l'algorithme lui-même et de la complexité des sous-fonctions qu'il appelle.

ici pour en savoir plus: https://en.wikipedia.org/wiki/Analysis_of_algorithms