Ich versuche, eine AJAX-Push-Implementierung in PHP mithilfe einer Comet-Long-Polling-Methode zu erstellen. Mein Code beinhaltet die Verwendung von file_get_contents()
, um eine Datei wiederholt zu lesen, um nach Nachrichten zu suchen, die an den Benutzer gesendet werden. Um die Serverlast zu reduzieren, verwende ich zwei Textdateien. Eines enthält den eigentlichen Befehl und eines fungiert als "Change Notifier", das entweder durch 0-9 iteriert wird oder einen UNIX-Zeitstempel enthält. Meine Frage ist, wie oft kann ich auf eine kleine (nur wenige Bytes) Datei zugreifen und lesen, ohne den Server zu überlasten? Die Push-Implementierung bedeutet, dass ich Änderungen viel häufiger abfragen kann, als alle paar Sekunden eine Datei anzufordern, aber es muss immer noch ein Limit geben.Maximale Server-Dateizugriffshäufigkeit
Wenn es hilft, verwende ich die 1 & 1 Home (Linux) Hosting-Plan, die Shared Hosting ist.
Der Server muss trotzdem überprüfen, ob die Datei aktualisiert wurde. Obwohl Sie Recht haben, wäre PHP die wirkliche Einschränkung. Wie viele Threads kann es standardmäßig verwenden? – zacharyliu
Wirklich einfache Benchmark: $ echo ""> a_file $ echo ' Php für ($ i = 0; $ i <100000; $ i ++) file_get_contents ("a_file");' > Test.php $ time php test.php echte \t 0m1.824s Benutzer \t 0m1.060s sys \t 0m0.732s Mehr als 50.000 pro Sekunde. – zepolen