Loading ...
Sorry, an error occurred while loading the content.

O questie ciudata

Expand Messages
  • Cristi
    Salut.De 3 zile ma tot chinuie o problema.Am facut in perl scriptu : ____ Test.pl ______ #!/usr/bin/perl use strict; my ($i,@info,$max); $max=1000;
    Message 1 of 1 , Sep 24, 2001
    • 0 Attachment
      Salut.De 3 zile ma tot chinuie o problema.Am facut in perl scriptu' :

      ____ Test.pl ______
      #!/usr/bin/perl

      use strict;

      my ($i,@info,$max);
      $max=1000;
      @info=split(/[\r\n]/,`ps ux|grep test.pl`);
      print $info[0]."\n";
      for($i=0;$i<=$max;$i++)
      {
      open(F,"data.dat");
      eval(join("",<F>));
      close(F);
      test_proc(2,4);
      undef &test_proc;
      }
      @info=split(/[\r\n]/,`ps ux|grep test.pl`);
      print $info[0]."\n";

      Daca data.dat este :
      sub test_proc
      {
      my($var1,$var2)=@_;
      $var1+=$var2;
      }
      ,prog. imi afiseaza aceeasi mem. folosita.(1.7 cand incepe si 1.9 cand
      iese),indiferent de val. lui. $max
      Dar daca data.dat este :
      sub test_proc
      {
      my($var1,$var2)=@_;
      $var1->info();
      }
      (in test.pl nu am mai apelat test_proc),atunci sunt 2 cazuri :
      $max=100 =>imi afiseaza la inceptu 1.7% din mem. fol. si la sfarsit 2%
      $max=5000 => la inceput 1.7% si la sfarsit 3%
      Daca in test_proc bag mai multe linii de genul
      $var1=$var2;$var1->bau();$var2->mau() si $max 10000,atunci la sfarsitul
      prog. voi avea 30-40% mem. ocupata.

      Exemplul este pur "didactic".Ca nu are rost sa definesc de mai multe ori
      acceasi functie.
      Dar eu am nevoie sa fac un script care stie N functii,dar nu le tine
      incarcate in memorie,ci incarca codul atunci cand sunt apelate dupa care da
      un undef *_proc;
      Dar dupa 20 de apelari ale aceleiasi functii ma trezesc cu multa mem.
      ocupata.(kam tot atat cat nu as fi facut cu procedel asta.)

      Oricum,e o "inventie" proprie.Daca are cineva o solutie mai "eleganta" il
      rog sa ma lumineze si pe mine.

      10x
    Your message has been successfully submitted and would be delivered to recipients shortly.