Communauté sur les Eggdrops - Community about Eggdrops
[script] Varsrank v1.0 - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+---- Forum: Releases et support (https://forum.eggdrop.fr/forumdisplay.php?fid=20)
+---- Thread: [script] Varsrank v1.0 (/showthread.php?tid=641)



[script] Varsrank v1.0 - Artix - 02/04/2010

Description:
Un script qui indique l'utilisation de memoire (longeur, quoi) des variables de l'eggdrop (en faisant une recherche recursive dans les namespaces).
Il les classe et affiche les X premières variables via une commande .varsrank en partyline (flag n requis).

Ainsi, on peut voir quel scripts prennent le plus de mémoire (quel pouf ce motus), ce qui peut être par exemple utile sur un shell (c'est MenzAgitat qui m'a forcé à dire ça, j'le jure!).

Idée originale par MenzAgitat (j'aimerais pouvoir dire ça pour les bugs, mais quelque chose me dit que ça sera pas très crédible...)


Notes:
Contrairement à d'habitude (ou pas) le script n'est pas commenté (comment ça, tant mieux ?). La raison, c'est que j'ai fait ce script en me servant d'un autre script, qui sortira bientôt (en fait, je dis ça depuis 6 mois).
Je remercie MenzAgitat pour m'avoir filé sa procédure de mise en forme de la quantité de mémoire (affichage Ko/Mo)
J'en profite aussi pour vous avertir concernant l'apparition occasionnelle de variables fantômes sur TCL : la liste obtenue avec info vars n'est pas toujours complétement à jour. Utilisez toujours info exists en protection.


Téléchargement: Ici. Oui, ICI ! LA, CLIQUEZ !


RE: [script] Varsrank v1.0 - Merwin - 03/04/2010

Bien entendu ça marche que si le script utilise un namespace du coup :D


RE: [script] Varsrank v1.0 - MenzAgitat - 03/04/2010

Si un script n'utilise pas de namespace, on ne pourra pas lister uniquement les variables lui appartenant spécifiquement mais il sera quand même possible de faire démarrer la recherche depuis le namespace root.

Exemple :
Code:
.varsrank 10 ::



RE: [script] Varsrank v1.0 - Artix - 03/04/2010

Comme disait MenzAgitat: Un screenshoot parle toujours mieux.
Tadaaa!

[Image: http://img151.imageshack.us/img151/3628/varsrank.png]

Vous pouvez au passage voir que j'ai quasiment aucun script de chargé. (Et que loadTcl utilise quasi-rien \o/)

Par contre, je tiens aussi à nuancer les résultats du script: le script ne scanne que les variables et array.
Il faut savoir qu'une grande partie de la mémoire est consommée par Eggdrop lui même (et pour les Windrops, les DLL de Cygwin et tout) et surtout TCL, qui garde des informations de debug en pagaille, toutes les procédures en mémoire, etc (à mon avis en tout cas e_e).
Ainsi, bien que le script ne voie que 4.5 Ko de variables, eggdrop utilisait en réalité 2 Mo de RAM.
Le script reste néamoins un bon indicateur puisque les scripts lourds tendent à avoir des variables lourdes aussi (regardez le motus :°)