[PERL] ActivePerl vs. Siemens

ActivePerl vs. Siemens [PERL] - Perl - Programmation

Marsh Posté le 24-10-2002 à 12:41:07    

Hello,
 
J'ai fait un petit test sur la gestion de la mémoire d'active Perl, d'Indigo Perl, et du perl de Siemens, tout ca sous Windows (win2000)
 

Code :
  1. print "Hello.\n";
  2. sleep 5;
  3. print "filling...";
  4. for ($i=0;$i<1000000;$i++) {
  5. $a .= "aaaaaaaaaa";
  6. }
  7. print "done\n";
  8. sleep 5;
  9. print "release memory!\n";
  10. undef($a);
  11. sleep 5;
  12. print "bye.";


 
 
En gros le truc fait une (longue) boucle pour remplir doucement une variable avec 10 000 000 caracteres (10mo environ)
j'ai mis des sleep pour pouvoir constater l'occupation de la memoire avec le gestionnaire de taches
 
alors voila les resultat que j'ai pu obtenir avec un PII 350 et 128mo de ram:
 
ActivePerl: il met 2 ou 3 secondes pour faire la boucle, mais il fini par occuper 30mo (!!), qu'il ne rend pas au moment du undef.
 
IndigoPerl: idem Active perl (c le meme on dirait!)
 
Siemens (binary trouvé sur perl.org il me semble):
il met 2 (!!!) minutes pour faire la boucle, mais il n'occupe que 10mo (normal koi, et il rend la memoire au moent du undef
 
en remplissant la variables par plus gros bout, la vitesse devient plus comparable. Je pense que la difference de vitesse ne doit pas trop se faire sentir dans uen vraie application, mais la memoire est vraiment mieux gérée
 
je me suis dit que c'etait une question de malloc utilisé à la compilation de perl, mais toutes les version sont usemymalloc='n'
 
kk1 a une autre explication?


Message édité par pospos le 24-10-2002 à 13:28:43
Reply

Marsh Posté le 24-10-2002 à 12:41:07   

Reply

Marsh Posté le 24-10-2002 à 19:23:11    

personne n'a testé ce bout de code avec son interpreteur perl?

Reply

Marsh Posté le 25-10-2002 à 15:23:14    

J'utilise Active PErl comme toi, mais sous Win98 il met a peu pret 30 secondes, mais pour la libération de la memoire !! la je c pas ou regarder  :??:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 25-10-2002 à 15:30:09    

ok merci
 
ya pas genre un gestionnaire des taches sous cette m**de de win98?

Reply

Marsh Posté le 25-10-2002 à 15:33:26    

j'ai pas vu !! je connais juste les ressource global utilisé, mais je c pas si ca se refraichit souvent !!!


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 28-10-2002 à 18:39:20    

Citation :


(ping@icmp)-(~/projects/tests)> time ./test                         <(18:33:12)
Hello.
filling...done
release memory!
bye.
'./test' spends 17,85s (2,56s user and 0,24s kernel). CPU usage : 15%
(ping@icmp)-(~/projects/tests)>                                     <(18:33:36)
(ping@icmp)-(~/projects/tests)> perl -v                             <(18:35:25)
 
This is perl, v5.8.0 built for i386-linux-thread-multi
 
Copyright 1987-2002, Larry Wall
 
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
 
Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.
 
(ping@icmp)-(~/projects/tests)>                                     <(18:35:26)

 
 
 
vala... ca prends 17,85s en tout (y compris tes trois sleeps de 5 secondes), et ca ne prends que 10Mo de mémoire à la sortie de la boucle.
 
pour info :
 

Citation :


(ping@icmp)-(~/projects/tests)> uname -a                            <(18:35:26)
Linux icmp 2.4.18-k7 #1 Sun Apr 14 13:19:11 EST 2002 i686 AMD Duron(tm) Processor AuthenticAMD GNU/Linux
(ping@icmp)-(~/projects/tests)> cat /proc/cpuinfo                   <(18:37:11)
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 3
model name      : AMD Duron(tm) Processor
stepping        : 1
cpu MHz         : 700.046
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
model           : 3
model name      : AMD Duron(tm) Processor
stepping        : 1
cpu MHz         : 700.046
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips        : 1395.91
 
(ping@icmp)-(~/projects/tests)> cat /proc/meminfo                   <(18:37:24)
        total:    used:    free:  shared: buffers:  cached:
Mem:  130265088 115085312 15179776        0  3739648 38047744
Swap: 542859264 13897728 528961536
MemTotal:       127212 kB
MemFree:         14824 kB
MemShared:           0 kB
Buffers:          3652 kB
Cached:          32488 kB
SwapCached:       4668 kB
Active:          69140 kB
Inactive:        35376 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       127212 kB
LowFree:         14824 kB
SwapTotal:      530136 kB
SwapFree:       516564 kB
(ping@icmp)-(~/projects/tests)>                                     <(18:37:30)
 


---------------
-- NO SLACKERS - violators will be fsck'd & tar'd
Reply

Marsh Posté le 28-10-2002 à 20:52:21    

merci
j'aivais aussi fait le test avec le binary 5.8 qui traine un peu partout, et il m'a fait les meme resultats que le Siemens (la vitesse je me souviens plus, mais c'etait pas sur la meme cachine de tte facon)
 
Je me demande pourkoi le 5.6 d'active perl ne peut pas rendre la memoire ua systeme tout de meme?!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed