dedlfix: Programmiertechnik: Websockets über mehrere Seiten?

Beitrag lesen

Tach!

Wenn es ein Limit bei Arrays gibt, wird es wohl eher nicht nur bei "Handvoll" liegen, sondern bei MaxInt, wenn überhaupt.

Das hängt in erster Linie vom Memory_Limit ab. Üblicherweise bekommen normale PHP-Scripte ja nur 8MB zugewiesen (zumindest bei mir *g*). PHP-Arrays sind in Wirklichkeit aber Listen bzw. Hashtables mit angeschlossenen Datenbereichen, bzw. Unterlisten. Also ergibt sich im Prinzip eine Baumstruktur. Die benötigt für die Verwaltung einiges an Overhead.

Das war jetzt nicht direkt die Frage, sondern ob die Anzahl der Verbindungen ein Array sprengt oder nicht. Die Antwort ist: nein, unrealistisch. Dass weitere zu speichernde Daten weiteren Speicher brauchen, und ob die mit dem Connections-Array direkt verbunden sind, steht auf einem anderen Blatt.

Wenn Du nun einen PHP-CLI-Prozess mit dem "Server" in den Hintergrund stellst, solltest Du dem also genügend Speicher (128 - 512MB?) zuordnen, wenn Du nicht gleich am Ende sein willst. Die Kommunikation selbst benötigt ja auch noch Speicher. Der Prozess wird ja nur einmal benötigt und nicht pro Request, so wie beim HTTP-Responder.

Hättest Du Interesse daran, die Erkenntnisse zum Thema hier im Wiki auf einer "Experimantal"-Seite gemeinsam zu sammeln?

Ähm, was genau für einen Erkenntnisgewinn versprichst du dir da? Und inwieweit wird der Speicherverbrauch einer individuellen Programmierung vergleichbar sein mit anderen individuellen Programmierungen? Hast du sowas in der Art im Kopf: "5 Verbindungen brauchen 1 MB, wenn du also 10 Verbindungen planst, brauchst du 2 MB."?

Wenn ja, kann ich das Ergebnis vorwegnehmen: Wenn ein Lasttest in für den Anwendungsfall realistischer Größenordnung mit einem Speicherlimit aussteigt, musst du mehr Speicher freigeben und gegebenenfalls mehr in die Maschine stecken. Aussagen zu konkreten Größen lassen sich wegen der Individualität der Anwendungsfälle nicht machen.

dedlfix.