Schrift
[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
5680 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.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

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.