PDA

Afficher la version complète : [Réglé] Statistiques précises (conso mémoire, processeur...) sur un programme ?



Cooky
22/06/2007, 14h38
Bonjour,

j'ai codé un programme (en Ocaml) ; or j'aimerais avoir des statistiques précises sur son utilisation :
-La mémoire maximale qu'il consomme,
-la charge processeur maximale, au cours d'une exécution,
-enfin le temps d'éxécution.

Le hic, c'est que le temps d'éxécution est très court (moins d'une seconde), donc faire du monitoring n'est pas une solution envisageable. De même; la quantité de mémoire utilisée sera très faible.

Il s'agit surtout de montrer comment le programme peut devenir plus gourmand en fonction de certains paramètres.

Existe t-il un programme qui permet d'effectuer des mesures précises sur l'occupation mémoire et processeur d'un programme ? Merci !

Burn2
22/06/2007, 14h58
Bonjours
pourquoi ne pas faire un script qui récupère le résultat de la commande top en continu et te stock ça dans un fichier?? Tu le lance juste avant et op tu le coupes aprés?

Edit: Je ne sais même pas si la commande

top >> nom_d_un_fichier

ne fait déjà pas déjà ça.

Copernicus_ThebigNewbie
22/06/2007, 15h14
Peut-être ici :

http://munin.projects.linpro.no/

Burn2
22/06/2007, 17h13
Bon je viens d'essayer la commande :


top >> test

C'est pas super lisible mais normalement ça devrait faire ce que tu cherches à faire.



en gros ça répond ça:


<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
(Btop - 17:13:46 up 1:12, 2 users, load average: 0.30, 0.33, 0.33(B
Tasks:(B(B 105 (Btotal,(B(B 2 (Brunning,(B(B 103 (Bsleeping,(B(B 0 (Bstopped,(B(B 0 (Bzombie(B
Cpu(s):(B(B 13.3%(Bus,(B(B 2.2%(Bsy,(B(B 0.6%(Bni,(B(B 76.5%(Bid,(B(B 6.8%(Bwa,(B(B 0.0%(Bhi,(B(B 0.6%(Bsi,(B(B 0.0%(Bst(B
Mem: (B(B 1035888k (Btotal,(B(B 880536k (Bused,(B(B 155352k (Bfree,(B(B 38976k (Bbuffers(B
Swap:(B(B 2554292k (Btotal,(B(B 0k (Bused,(B(B 2554292k (Bfree,(B(B 501520k (Bcached(B

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND (B
(B 3633 root 15 0 125m 111m 19m S 4.0 11.0 2:32.16 X (B
(B 1 root 15 0 740 288 240 S 0.0 0.0 0:00.89 init (B
(B 2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 (B
(B 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 (B
(B 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.14 events/0 (B
(B 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper (B
(B 6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread (B
(B 9 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0 (B
(B 10 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kacpid (B
(B 11 root 16 -5 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify (B
(B 111 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0 (B
(B 112 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kseriod (B
(B 150 root 25 0 0 0 0 S 0.0 0.0 0:00.00 pdflush (B
(B 151 root 15 0 0 0 0 S 0.0 0.0 0:00.02 pdflush (B
(B 152 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kswapd0 (B
(B 153 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0 (B
(B 396 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kpsmoused (B(Btop - 17:13:49 up 1:12, 2 users, load average: 0.27, 0.32, 0.33(B
Tasks:(B(B 105 (Btotal,(B(B 4 (Brunning,(B(B 101 (Bsleeping,(B(B 0 (Bstopped,(B(B 0 (Bzombie(B
Cpu(s):(B(B 0.3%(Bus,(B(B 0.7%(Bsy,(B(B 0.0%(Bni,(B(B 95.3%(Bid,(B(B 3.3%(Bwa,(B(B 0.0%(Bhi,(B(B 0.3%(Bsi,(B(B 0.0%(Bst(B
Mem: (B(B 1035888k (Btotal,(B(B 880544k (Bused,(B(B 155344k (Bfree,(B(B 38984k (Bbuffers(B
Swap:(B(B 2554292k (Btotal,(B(B 0k (Bused,(B(B 2554292k (Bfree,(B(B 501516k (Bcached(B

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND (B
(B 2666 messageb 16 0 3632 1064 720 S 0.3 0.1 0:03.17 dbus-daemon (B
(B 2738 haldaemo 15 0 5752 4056 1896 S 0.3 0.4 0:01.67 hald (B
(B 3749 Quentin 15 0 92688 31m 22m S 0.3 3.2 0:11.29 nautilus (B
(B 3778 Quentin 15 0 51460 18m 13m S 0.3 1.8 0:15.09 main-menu (B
(B(B13764 root 15 0 2260 1020 760 R 0.3 0.1 0:00.02 top (B
(B 1 root 15 0 740 288 240 S 0.0 0.0 0:00.89 init (B
(B 2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 (B
(B 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 (B
(B 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.14 events/0 (B
(B 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper (B
(B 6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread (B
(B 9 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0 (B
(B 10 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kacpid (B
(B 11 root 16 -5 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify (B
(B 111 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0 (B
(B 112 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kseriod (B
(B 150 root 25 0 0 0 0 S 0.0 0.0 0:00.00 pdflush (B(Btop - 17:13:52 up 1:12, 2 users, load average: 0.27, 0.32, 0.33(B
Tasks:(B(B 105 (Btotal,(B(B 4 (Brunning,(B(B 101 (Bsleeping,(B(B 0 (Bstopped,(B(B 0 (Bzombie(B
Cpu(s):(B(B 0.3%(Bus,(B(B 0.7%(Bsy,(B(B 0.0%(Bni,(B(B 98.3%(Bid,(B(B 0.0%(Bwa,(B(B 0.0%(Bhi,(B(B 0.7%(Bsi,(B(B 0.0%(Bst(B
Mem: (B(B 1035888k (Btotal,(B(B 880544k (Bused,(B(B 155344k (Bfree,(B(B 38984k (Bbuffers(B
Swap:(B(B 2554292k (Btotal,(B(B 0k (Bused,(B(B 2554292k (Bfree,(B(B 501528k (Bcached(B

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND (B
(B 3778 Quentin 15 0 51460 18m 13m S 0.3 1.8 0:15.10 main-menu (B
(B 1 root 15 0 740 288 240 S 0.0 0.0 0:00.89 init (B
(B 2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 (B
(B 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 (B
(B 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.14 events/0 (B
(B 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper (B
(B 6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread (B
(B 9 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0 (B
(B 10 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kacpid (B
(B 11 root 16 -5 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify (B
(B 111 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0 (B
(B 112 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kseriod (B
(B 150 root 25 0 0 0 0 S 0.0 0.0 0:00.00 pdflush (B
(B 151 root 15 0 0 0 0 S 0.0 0.0 0:00.02 pdflush (B
(B 152 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kswapd0 (B
(B 153 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0 (B
(B 396 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kpsmoused (B[?12l[?25h

</div>
c'est pas énorme mais ça permet d'avoir un audit trés rapide et de savoir exactement ce que tu veux.
Sur plusieurs top de top, aprés tu peux parramétrer top pour qu'il fasse plus de passe genre se rafraichir tous les x ms, pour ça c'est top -d ta durée je crois mais man top te diras comment faire.

Coin-coin
23/06/2007, 18h02
Salut,
Pour le temps d'exécution, il y a "time ton_programme".