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.
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.
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"
profiler:calls profiler:exclusive-time profiler:inclusive-time profiler:start profiler:stop profiler:reset profiler:report
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.
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.
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.
Demande au profileur de commencer d'enregistrer les appels des procédures définies par l'utilisateur.
Demande au profileur de cesser d'enregistrer les appels des procédures définies par l'utilisateur.
Demande au profileur d'effacer toutes les données collectées.
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