2010-12-11 72 views
4

Hay!Test pour un programme que je programme

Je voudrais créer un test qui puisse trouver la complexité (temps & space) du programme. fonction par fonction ... J'ai pensé faire cela avec la librairie "time" et compter les secondes en cours d'exécution des fonctions pour un grand nombre de "n".

Quelqu'un a-t-il une meilleure idée? peut-être existe-t-il déjà? :)

Merci! Amihay

Répondre

1

On dirait une approche parfaitement raisonnable, pour la complexité du temps au moins. Assurez-vous que les sorties de votre programme dans un format utile, par exemple CSV ou onglet séparé, de sorte que vous pouvez facilement copier/charger ceci dans une feuille de calcul.

La complexité de l'espace peut être un peu plus difficile à obtenir de manière fiable. Pour cela, vous pouvez modifier vos fonctions afin qu'elles renvoient une métrique utile. Par exemple, si la structure de données principale de votre algorithme est une carte d'éléments fixes, le retour de la taille maximale de la carte pendant l'exécution vous donnera suffisamment d'informations.

1

Ecrivez des tests et effectuez des profils de performance. Bien sûr, vous pouvez écrire vos propres fonctions, mais ce n'est pas ainsi que cela se passe. Bon profileur vous fournira toutes sortes d'informations que vous pouvez imaginer.

Découvrez le didacticiel this sur le profilage.