Hello,
kurzer Zwisaxchenbericht über die Tests mit flat_update()
Habe 999 Datensätze eingefügt. Das hat ca. 10Sek gedauert.
Das File hat nun eine Größe von 272,224 Bytes
Das Update eines Satzes (ID==333) ist schneller gegangen, als ich gucken konnte. Ich muss das also wirklich messen.
Allerdings gab es bei der Einfügeoperation mit flat_update() erst noch eine kleine Grübelei. Die Funktion wollte innerhalb eines Scriptes das Einfügen nicht erledigen. Die Schliefe wurde aber durchlaufen.
NAch dem Einfügen der Zeile
clearstatcache();
funktioniert die Funktion nun auch beim mehrfachen Aufruf innerhalb EINER Scriptinstanz.
Der Fehler liegt da bei fread($fp,filesize($filename));
--------
Da die Statusdaten noch nicht aktualisiert waren, wure immer noch die alte filesize() VOR dem Einfügen benutzt. Muss man also daran denken.
#--------------------------------------------------------------------
function flat_update($filename,&$_recdata)
{
//status-Buffer rücksetzen
clearstatcache();
//Datei öffnen und locken, bei Fehler abrechen
$fp = flat_open_lock($filename,LOCK_EX);
if (!$fp) return 5; ## Datei konnte nicht gesperrt werden
//Datei entpacken
fseek($fp,0,SEEK_SET);
$_file_packed = fread($fp,filesize($filename));
$_file = unserialize($_file_packed);
...
Ich messe jetzt noch, wie lange es dauert, mehrere Sätze updaten zu lassen bei ca. 1MB Dateivolumen.
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau