Ergebniss
muss ich wohl echt mal mit c / c++ anfangen…
File:
-rw-r--r-- 1 www-data www-data 393M 2007-09-28 11:33 test.exp
Laufzeiten:
pg@ubuntu:/var/www/test$ time php import\_test.php
real 0m33.514s
user 0m33.150s
sys 0m0.370s
pg@ubuntu:/var/www/test$ time perl import.pl
real 0m50.886s
user 0m50.670s
sys 0m0.200s
pg@ubuntu:/var/www/test$ time ./cconverter
real 0m0.907s
user 0m0.640s
sys 0m0.270s
Outputfiles:
pg@ubuntu:/var/www/test/csv$ ls -l
-rw-r--r-- 1 pg pg 1918953 2007-09-28 14:19 cpp\_out\_ko.csv
-rw-r--r-- 1 pg pg 1353282 2007-09-28 14:19 cpp\_out\_t.csv
-rw-r--r-- 1 pg pg 1918953 2007-09-28 14:19 perl\_out\_ko.csv
-rw-r--r-- 1 pg pg 1353261 2007-09-28 14:19 perl\_out\_t.csv
-rw-r--r-- 1 pg pg 1918953 2007-09-28 14:17 php\_out\_ko.csv
-rw-r--r-- 1 pg pg 1353282 2007-09-28 14:17 php\_out\_t.csv
hätte nicht gedacht das dort ein so masiver unterschied besteht,
was mich extremst wundert sind die unterschiedlichen zeiten bei perl und php.
habe eigentlich nicht damit gerechnet das dort ein so großer unterschied ist.
Gruß
Phillip
muss ich wohl echt mal mit c / c++ anfangen…
File:
-rw-r–r-- 1 www-data www-data 393M 2007-09-28 11:33 test.exp
pg@ubuntu:/var/www/test$ time ./cconverter
real 0m0.907s
user 0m0.640s
sys 0m0.270s
ich weiss nicht was du da gemessen hast, aber mit was fuer einer maschine kann man 400mb in
muss ich wohl echt mal mit c / c++ anfangen…
Und wie groß war die Ursprungsdatei?
Könntest du mal eine lauffähige Version deines PHP Skriptes bereitstellen, also wo man nur Copy & paste in datei macht und die dann auch mit „php /path/to/file“ ausführbar ist?
Könntest du auch den C Sourcecode posten?
muss ich wohl echt mal mit c / c++ anfangen…
hätte nicht gedacht das dort ein so masiver unterschied
besteht,
was mir noch aufgefallen ist:
die aufrufe von intodb() und die entspr. funkionalität waren soweit ich gesehen habe weder in der c noch in der perl umsetzung enthalten - hast du die aus dem php auch entfernt?
PHP Script
<?PHP $handle = fopen("/var/www/test/test.exp","r");<br />$out\_ko = fopen("/var/www/test/csv/php\_out\_ko.csv","w+");
$out\_t = fopen("/var/www/test/csv/php\_out\_t.csv","w+");
while (!feof($handle)) {
$buffer = trim(fgets($handle));
$var = explode(";",$buffer);
if($var[0] == 'KO') {
unset($var[0],$var[1]);
fwrite($out\_ko, "NULL;".implode(";",$var) . "\n");
} else if ($var[0] == 'T') {
$id = $var[2];
unset($var[0],$var[1],$var[2]);
$x = 3;
$y = 1;
WHILE(!empty($var[$x])) {
fwrite($out\_t, "NULL;$id;".$y++.";".$var[$x++].";".$var[$x++].";".$var[$x++].";".$var[$x++].";".$var[$x++]."\n");
}
}
}
fclose($handle);
fclose($out\_ko);
fclose($out\_t);
?\>
ich weiss nicht was du da gemessen hast, aber mit was fuer
einer maschine kann man 400mb in
Laut Samsung sollen die Festplatten bei der Datenübertragung eine
maximale Geschwindigkeit von 3 Gbit/s erreichen. Damit sind sie etwa
doppelt so schnell wie normale SATA1 Festplatten. In Deutschland sind
die neuen, oft auch als SATA/300 bezeichneten Platten z.T. auch schon
erhältlich.
SATA2 im 1+0 Raid
Sprich SATA2/300
gruß
Phillip
Hallo,
muss ich wohl echt mal mit c / c++ anfangen…
Solltest Du sowieso, generell, überhaupt - und
vor allem in dieser Branche 
pg@ubuntu:/var/www/test$ time php import_test.php
user 0m33.150s
pg@ubuntu:/var/www/test$ time perl import.pl
user 0m50.670s
pg@ubuntu:/var/www/test$ time ./cconverter
real 0m0.907s
user 0m0.640s
sys 0m0.270s
hätte nicht gedacht das dort ein so masiver unterschied
besteht,
Na ja, bis Faktor 100, wenn wirklich
was im Quelltext passiert, ist nicht
ungewöhnlich. Die Perl-Version krankt
hier am Einsatz von „Eleganz“, sprich
Arrayslices etc. sehen schön aus, kosten
aber Zeit.
was mich extremst wundert sind die unterschiedlichen zeiten
bei perl und php.
habe eigentlich nicht damit gerechnet das dort ein so großer
unterschied ist.
Idr. ist bei „nahezu identischem“ Quelltext
Perl c.a. 25-50% schneller als PHP, das ist
meine Erfahrung. Man müsste Perl, um es schneller
zu bekommen, „uneleganter“ machen.
Ich bin übers Wochenende weg, sonst würde ich mal
versuchen, die Perl-Version in Richtung C zu
trimmen 
Vielleicht habe die Anderen ja Lust dazu …
Grüße
CMБ
Ich bin übers Wochenende weg, sonst würde ich mal
versuchen, die Perl-Version in Richtung C zu
trimmen 
Vielleicht habe die Anderen ja Lust dazu …
ich kriege ja noch nicht mal die PHP-version zum laufen, da
tauchen jede menge warnings auf (php 5.2.1)
da macht ein vergleich keinen spass.
warnungen sind erst mal net soo schlimm 
mach nen error_reporting(0); 
aber bei mir tauchen auch mit error_reporting(E_ALL); keine Warnungen auf.
Gruß
Phillip
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
warnungen sind erst mal net soo schlimm 
mach nen error_reporting(0); 
omg.
warnungen haben einen grund.
ausserdem verlangsamen sie ein programm erheblich, wenn sie
in jedem schleifendurchlauf kommen. aber gut, wenn dir
das egal ist…
darum ja auch
aber bei mir tauchen auch mit error_reporting(E_ALL); keine Warnungen auf.
Welche Warnung taucht den bei dir auf ?
Gruß
Phillip
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]