L'extension Profiler

NetLogo 4.0.4   Manuel de l'utilisateur  

L'extension Profiler livre des informations qui peuvent vous aider à faire en sorte que votre modèle tourne plus rapidement. Elle est constituée d'un ensemble de primitives servant à mesurer combien de fois les procédures du modèle sont appelées pendant une simulation et combien de temps dure chaque appel.

Avertissements

Note concernant la compatibilité : Cette extension demande que votre système utilise Java 1.5 ou plus lorsque vous faites tourner NetLogo car elle utilise des fonctionnalités qui ne sont pas présentes dans Java 1.4. Avec Windows, vous ne devriez pas avoir de problèmes puisque le paquet NetLogo téléchargé contient déjà Jave 1.5. Les utilisateurs de Mac doivent avoir au moins Mac OS X 10.4 ou supérieur puisque Apple n'offre pas Java 1.5 avec ses versions 10.2 et 10.3.

Attention! L'extension Profiler est nouvelle et expérimentale. Elle n'a pas encore été bien testée et n'est pas encore très conviviale. Nous pensons toutefois que certains utilisateurs la trouveront utile.

Utilisation

L'extension Profiler est installée automatiquement avec le reste de NetLogo. Pour utiliser l'extension dans votre modèle, ajoutez la ligne de code suivante tout en haut de panneau "Procedures" avant toute autre commande ou définition :

extensions [profiler]

Si le modèle fait déjà appel à d'autres extensions, la ligne extensions est déjà présente dans le code. Il suffit alors d'ajouter profiler dans la liste des extensions.

Pour en savoir plus sur l'utilisation des extensions NetLogo, consultez le Extensions Guide.

Exemple :

setup                  ;; initialise le modèle
profiler:start         ;; démarre le profilage
repeat 20 [ go ]       ;; démarre ce que vous voulez mesurer
profiler:stop          ;; arrête le profilage
print profiler:report  ;; montre les résultats
profiler:reset         ;; efface les données 

Exemple de code : "Profiler Example"

Les primitives de Profiler

profiler:calls profiler:exclusive-time profiler:inclusive-time profiler:start profiler:stop profiler:reset profiler:report

profiler:calls

profiler:calls procedure-name

Retourne le nombre de fois que la procédure procedure-name a été appelée. Retourne 0 si la procédure procedure-name n'est pas définie.

profiler:exclusive-time

profiler:exclusive-time procedure-name

Retourne le temps exclusif, en millisecondes, que la procédure procedure-name a mis pour faire son travail. Le temps exclusif est le temps qui s'est écoulé entre l'entrée dans la procédure et le moment où elle termine son travail moins le temps utilisé par les procédures qu'elle appelle éventuellement.

Retourne 0 si la procédure procedure-name n'est pas définie.

profiler:inclusive-time

profiler:inclusive-time procedure-name

Retourne le temps inclusif, en millisecondes, que la procédure procedure-name a mis pour faire son travail. Le temps inclusif est le temps qui s'est écoulé entre l'entrée dans la procédure et le moment où elle termine son travail, y compris le temps utilisé par les procédures qu'elle appelle ou les autres opérations qu'elle exécute ou fait exécuter.

Retourne 0 si la procédure procedure-name n'est pas définie.

profiler:start

profiler:start

Demande au profileur de commencer d'enregistrer les appels des procédures définies par l'utilisateur.

profiler:stop

profiler:stop

Demande au profileur de cesser d'enregistrer les appels des procédures définies par l'utilisateur.

profiler:reset

profiler:reset

Demande au profileur d'effacer toutes les données collectées.

profiler:report

profiler:report

Retourne une chaîne de caractères contenant un analyse de tous les appels des procédures définies par l'utilisateur. La colonne Calls contient le nombre de fois que la procédure a été appelée. La colonne Incl T(ms) montre le temps total, en millisecondes, mis par la procédure pour faire son travail, y compris le temps mis par les procédures appelées par elle-même. La colonne Excl T(ms) est le temps total mis par la procédure pour faire son travail, mais sans compter le temps mis par les procédures qu'elle a éventuellement appelées. La colonne Excl/calls affiche une estimation du temps moyen, en millisecondes, mis par chaque appel de la procédure.

Voici un exemple de sortie :

Sorted by Exclusive Time
Name                               Calls Incl T(ms) Excl T(ms) Excl/calls
CALLTHEM                              13     26.066     19.476      1.498
CALLME                                13      6.413      6.413      0.493
REPORTME                              13      0.177      0.177      0.014

Sorted by Inclusive Time
Name                               Calls Incl T(ms) Excl T(ms) Excl/calls
CALLTHEM                              13     26.066     19.476      1.498
CALLME                                13      6.413      6.413      0.493
REPORTME                              13      0.177      0.177      0.014

Sorted by Number of Calls
Name                               Calls Incl T(ms) Excl T(ms) Excl/calls
CALLTHEM                              13     26.066     19.476      1.498