Thread Perfomance beschleunigen so? (25 answers)
Opened by ppm1 at 2004-05-16 22:04

Ishka
 2004-05-24 16:46
#82429 #82429
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ich hatte das Black&White-Modell erklärt. Hier erklär ich mal nur die Kurzfassung, ausführlich werd ich das in spätestens 10 Wochen (Semesterende) machen:

es gibt zwei Speicherbereiche. 0 und 1. Den 0er nennen wir mal White. Wenn ich ne Variable deklarieren will, dann deklarier ich sie immer im White-bereich. Nach ner Weile läugt mein Garbage-collektor los. Dann wird der 0er Black und der 1er White genannt. Dann beginne ich bei der Wurzel mitm Rumkopieren (bei Perl wäre das die Variable %::). Das sieht so aus: Ich kopiere den Inhalt der Wurzelvariablen aus dem Black in den whitebereich und hinterlasse einen Marker, daß die Variable jetzt im White-Bereich liegt. Alle Variablen auf die ich gezeigt hab, werden in einen temporären Stack gelegt. Dann geb ich an das Programm zurück. Bei jedem Schritt wird jetzt eine (oder ein paar) Variable(n) aus dem Stack geholt und die aus dem Black in den White-Bereich kopiert, wobei alle Variablen wieder in den Stack geschoben werden, auf die irgendetwas zeigt. Irgendwann ist dann mein Stack leer. Dann kann ich alle Variablen im Blackbereich löschen. Dann wird wieder umbezeichnet - und so weiter..
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}

View full thread Perfomance beschleunigen so?