filesize ziemlich lahm, alternative?

strex

Erfahrenes Mitglied
Hi Leute,

ich lese die Größe einiger Dateien über filesize ein. Da diese Dateien meist größer sind als 300MB dauerd dies knapp (600mb) 1-2min. Gibt es eine Möglichkeit dies zu optimieren?

Danke für eure Hilfe!


Grüße strex
 
Also ich kann keineswegs behaupten, dass filesize() langsam waere.
Die Dateigroesse eines CD-Images was ich hier habe (ca. 450MB ) wird mir sozusagen sofort ausgegeben. Was lediglich nicht funktioniert hat, aber auch keine Verzoegerung brachte, ist die Anzeige der Groesse einer 4GB grossen Image-Datei.
In jedem Fall war die Ausgabe sofort da, von ein paar Sekunden fuer den Aufruf, oder gar Minuten, ist da nicht zu sprechen.

Nutzt Du filesize() eventuell um die Groesse von Dateien festzustellen die auf einem anderen Server liegen?
 
Nein, ich lese hier ganz normal die Datei aus. Gut der Server ist zwar nicht der schnellste aber mit 2,6Ghz, sollte doch was gehen.

Ermittelt werden:

PHP:
$size = filesize($filenamein); 
$time = filemtime($filenamein); 
$chkmd5   =    md5_file($filess);

Es kann dann natürlich auch am md5 liegen.

Grüße strex
 
Because PHP's integer type is signed and many platforms use 32bit integers, filesize() may return unexpected results for files which are larger than 2GB. For files between 2GB and 4GB in size this can usually be overcome by using sprintf("%u", filesize($file)).

Von der Funktionsreferenz.

Weiterhin werden bei mir Files mit über 2 GB mit negativen Zahlen errechnet und die Lösung mit sprintf funktioniert gar nicht.

Es gibt einige Lösungen, die per ls das Verzeichnis in eine .txt speichern und diese dann wieder einlesen, aber ob das ganze wirklich performant ist?

Ich würde fast sagen, da muss man sich an eine der alternativen Sprachen wenden, sprich Ruby oder Perl, bis PHP da mal in die Hufe kommt...

Bei Dateien bis 2GB geht es Lokal als auch auf meinem Webspace (nur gemietet, kein Root o. ä.) in unter 1 Sek. von statten.
 
Also es liegt definitiv am md5 ;)
Denn wer sich den Algorithmus mal angesehen hat, sieht, dass umso größer die Datei ist, extrem viele Berechnungen ausgeführt werden müssen, und das wirkt sich natürlich ordentlich auf die Zeit aus
 
Dann ist das wohl der übeltäter. Ich benötige aber das md5 um den Usern eine Möglichkeit zu bieten zu überprüfen ob die Datei vollständig ist. Dazu wird bei einlesen der Datei ein md5 erzeugt.

Gibt es eigentlich alternativen? SFV ist leider nicht das passende:(

Grüße strex
 
Hmm ich muss mir das mal genau überleg und vielleicht doch benutzen. Weil derzeit benötigt der md5 zur Erstellung gute 4min (600MB) zudem große Serverbelastung.

Ich werd mich dann mal schlau machen. Gibt´s noch weitere Alternativen?

Grüße strex
 
Zurück