Hallo zusammen,
habe auf meiner Seite ein kleines JS zur Berechnung von Primzahlen hingestellt. Das besiert auf dem Sieb des Eratosthenes . Es funzt soweit alles wie gewüncht (na ja fast alles)
Bei der Ausführung des Scriptes kann man aber eklatante Unterschiede in der Ausführungszeit zwischen IE und FF erkennen.
Beim Zahlenbereich 0-10000 dauert die Suche im FF ca 45 Sekunden, im IE hingegen ca 150 sek. Auch bei kleineren Werten gilt dasselbe: IE dauert mindestens 2 mal länger als FF.
Habe ich denn in folgendem Code einen Stolperstein für IE eingebaut, ohne es zu wissen. ?
Für Eure Tipps bin ich Euch dankbar.
Gruss
tobi
habe auf meiner Seite ein kleines JS zur Berechnung von Primzahlen hingestellt. Das besiert auf dem Sieb des Eratosthenes . Es funzt soweit alles wie gewüncht (na ja fast alles)
Bei der Ausführung des Scriptes kann man aber eklatante Unterschiede in der Ausführungszeit zwischen IE und FF erkennen.
Beim Zahlenbereich 0-10000 dauert die Suche im FF ca 45 Sekunden, im IE hingegen ca 150 sek. Auch bei kleineren Werten gilt dasselbe: IE dauert mindestens 2 mal länger als FF.
Habe ich denn in folgendem Code einen Stolperstein für IE eingebaut, ohne es zu wissen. ?
PHP-Code:
//ist natürlich JS Code ;-)
zahlen = new Array(5001);
function primen(){
document.getElementById('prim'+0).style.backgroundColor = 'red';
document.getElementById('prim'+1).style.backgroundColor = 'red';
var ii = 0;
while(ii < zahlen.length){
zahlen[ii] = 1;
ii++;
}
zahlen[0] = 0;
zahlen[1] = 0;
var ende_abs;
ende_abs = Math.sqrt(zahlen.length);
ende_abs = parseInt(ende_abs);
ende_abs = ende_abs+1;
for(var i = 2 ; i <= ende_abs;i++){
ende = zahlen.length/i;
ende = parseInt(ende);
if(zahlen[i] == 0 && i < ende_abs){
continue;
}
var iii = i;
while(iii <= ende){
if(zahlen[i] == 0){
iii++;
continue;
}else{
zahl = i * iii;
if(zahl >= zahlen.length){
break;
}
document.getElementById('prim'+zahl).style.backgroundColor = 'red';
zahlen[zahl] = 0;
iii++;
}
}
}
var primes = 0;
var str = '';
for(var i = 0;i<=zahlen.length;i++){
if(zahlen[i] == 1){
primes++;
document.getElementById('prim'+i).style.backgroundColor = 'green';
str = str+i+' ';
}
}
return str;
}
Gruss
tobi
Kommentar