Performance meines PHP Socketservers

skee

Mitglied
Hallo,
Ich bastel gerade an einem MultiUser-Spiel und nutze dafür einen Socketserver, den ich in PHP geschrieben habe. Das Ganze funktioniert auch schon recht gut. Jetzt habe ich aber noch ein paar Ideen, bei denen ich vorher erstmal wissen müsste, wieviel davon der Server aus Performance-Gründen verträgt:

Folgendes:
Ich habe ein Array $map, in welchem die Kartenbereiche gespeichert werden und welche Speiler sich in diesem Kartenbereich aufhalten/bewegen.
Beispiel:

Array $map
--> Array "Karte 1"
--> --> [0] = "Spieler 1"
--> --> [1] = "Spieler 2"
--> --> [2] = "Spieler 3"
--> Array "Karte 2"
--> --> [0] = "Spieler 123"
--> --> [1] = "Spieler 245"
--> --> [2] = "Spieler 333"

Dazu gibt es noch ein Array $spieler:
Array $spieler
--> Array "Spieler1"
--> --> [id] = 1
--> --> [pos] = 327-665
--> --> [socket] = "Ressource 7"

Wenn ich jetzt die Positionsdaten aller Spieler updaten möchte, mache ich es aktuell so:

Ich gehe mit einer foreach-Schleife auf das Array $map, dann eine foreach-Schleife für die darunterliegenden Arrays und hole mir über diese Infos (zB id) dann die Daten aus dem Array $Spieler, packe das in einen String und schicke diesen dann an die einzelnen Spieler.
Funktioniert auch ganz gut soweit.

Jetzt stellt sich für mich aber die Frage, wieviele Elemente (Arrays und Spielerinfos) im Array $map stehen dürfen, bevor ich da in große Probleme laufe? Oder, anders gefragt:
Wieviele Elemente eines Arrays kann ich mit einer foreach-Schleife pro Sekunde verarbeiten?
Wenn ich jetzt zB 1000 Elemente in einer Sekunde verarbeiten könnte, müsste ich diese Daten ja noch an die Spieler schicken. Da wäre die nächste Frage:
Wie oft pro Sekunde kann ich mit socket_write Daten schreiben?

Wär super, wenn mir hier jemand Input geben könnte.

Danke
Skee
 
Zurück