Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6261[/thread]

Perfomance beschleunigen so? (Seite 2)



<< |< 1 2 3 >| >> 26 Einträge, 3 Seiten
[E|B]
 2004-05-17 18:49
#82414 #82414
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Jedoch keine Chance bei zyklischen Referenzen hat. ;)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Gast Gast
 2004-05-17 18:55
#82415 #82415
Richtig - zyklische Referenzen mußt Du, zwingend, aufbrechen sonst geht das alles voll in die Hose ;)
ppm1
 2004-05-18 00:15
#82416 #82416
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
Zurück noch mal zu der anderen Frage:

Quote
Also bisher verwende ich immer so 5-8 Variablen mit

use vars($dbh, $sth,...)

würde es jetzt besser sein

use vars(@daten)
oder
use vars(%daten)

und dann halt hier zuweisen...?


Kann mir das jemand gerade mal im Sinne von Belastung usw. beantworten?
lichtkind
 2004-05-18 01:26
#82417 #82417
User since
2004-03-22
5730 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
stimmt das wirklich mit den zyklichen referenzen??
ich weiss das python schon seit längerem keine probleme damit hat.
es würde mich wundern wenn perl es nicht kann.
mein zeug:, Leute

Es beginnt immer mit einer Entscheidung.
Ishka
 2004-05-18 02:51
#82418 #82418
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
perl kann keine zyklischen Referenzen..
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Ishka
 2004-05-18 02:55
#82419 #82419
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
im Notfall ausprobieren:
perl -le 'while(1){
my $x="";
my $y=\$x;
$x=\$y}'

(Achtung - dieser Code müllt den Speicher zu, was zu erheblichen Problemen je nach Betriebssystem und Konfiguration führen kann. Also nicht ausführen, wenn ihr nicht wisst, was ihr da tut!!!)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
ptk
 2004-05-18 12:36
#82420 #82420
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Ishka,18.May.2004, 00:55](Achtung - dieser Code müllt den Speicher zu, was zu erheblichen Problemen je nach Betriebssystem und Konfiguration führen kann. Also nicht ausführen, wenn ihr nicht wisst, was ihr da tut!!!)[/quote]
Danke fuer die Warnung --- ich habe "limit vmemoryuse 32000" vorher ausgefuehrt, damit ein wildgelaufener Prozess mir nichts antun kann.

Manuell kann mit zyklische Referenzen brechen, indem man die Referenz "schwaecht":
Code: (dl )
perl -MScalar::Util=weaken -le 'while(1){my $x="";my $y=\$x;$x=\$y; weaken $x;}'
ptk
 2004-05-18 12:37
#82421 #82421
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=lichtkind,17.May.2004, 23:26]stimmt das wirklich mit den zyklichen referenzen??
ich weiss das python schon seit längerem keine probleme damit hat.
es würde mich wundern wenn perl es nicht kann.[/quote]
Benutzt python auch Referenzzaehler oder eine "echte" Garbage Collection? Bei Perl wird es definitiv erst mit Perl6 eine Loesung fuer das Problem geben.
Ishka
 2004-05-18 20:12
#82422 #82422
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Referenzzähler sind auch "echte" Garbage-Kollektoren. Sie nehmen bloß keinen zyklischen Müll mit..

Beim Perl-Treffen hab ich das Modell eines Black/White-Kollektors erklärt, der auch zyklischen Müll verkraftet (ja - ich weiß, wollte ich noch digital ausformulieren, hab da aber gerade zu wenig Zeit zu..).

Wenn du wissen willst, ob eine Programmiersprache etwas tut, oder nicht - ausprobieren ;)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
ppm1
 2004-05-18 22:59
#82423 #82423
User since
2003-09-14
142 Artikel
BenutzerIn
[default_avatar]
Mir will wohl keiner auf meine andere Frage antworten oder?
<< |< 1 2 3 >| >> 26 Einträge, 3 Seiten



View all threads created 2004-05-16 22:04.