Hello,
Im Endeffekt geht es wirklich nur darum eine Variable irgendwo zwischenzuspeichern. Die Prüfung mit Datenbankabfrage konnte ich schon auf unter 2ms drücken. Durch die Vermeidung einer MySQL Abfrage erwarte ich unter 1ms zu kommen. Von daher nehme ich an ein Dateizugriff wäre langsamer, oder irre ich mich, werde Dateien evtl. automatisch gecached?
Ob Daten, die auf der HDD geschrieben stehen, bei einem Zugriff automatisch gecached werden, das hängt vom verwendeten Dateisystem und seinen Komponenten ab, und welche Befehle aus dem Befehlssatz die Software dann benutzt.
Bei einem Schreibzugriff wird oft auf direkt die Platte zurückgeschrieben, aber eben nicht immer. Darum soll man ja Filebuffer leeren bzw. die Datei schließen, bevor man das Unterprogramm beendet oder den Strom ausschaltet.
Aus PHP-Sicht wird die Datei immer geschlossen, wenn das Script endet. Also müsste spätestens dann auch geschreiben werden. Ob aber das darunterliegende Filesystem nun den Schreibvorgang auch tatsächlich hart durchführt, oder solange wartet, bis genügend Schreibanforderungen im selben Bezirk der Platte vorliegen, hängt vom System ab. Elevator Seeking arbeitet z. B. mit einem solchen Buffer. Schreib- und Leseanforderungen werden nach Bezirken auf der Platte sortiert und gemeinschaftlich abgewickelt. Solange miss der Hauptspeicher herhalten.
Wenn ich nun aber betrachte, dass ein Reqest über öffentliche Netze wohl mindestens 50ms benötigt, um beantwortet zu werden, relativiert sich Dein Anliegen schon.
Um eine Optimierung der Abarbeitung vornehmen zu können, müsstest Du trotzdem etwas fleißiger sein und uns z.B. aussagefähige Zeitdiagramme zeigen. Für den Anfang reicht eine qualitative Darstellung, also die Darstellung der möglichen Szenarien. Welcher Client greift wann (in welcher Reihenfolge) auf was zu und was muss geschehen - Nur lesen, nur schreiben, lesen und schreiben = gezielt verändern?
Auf Zuruf kann man sowas nur selten richtig verstehen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg