Script zu verworren: Ausführung dauert 1-2 min! Wer kann mir das Script "stutzen"?

Luziver

Lose-Shredder
1 Mai 2006
222
7
Hey Leute
Also, folgendes Problem. Ich bastle zur Zeit an einem Browsergame, welches über PHP und MySQL läuft.
Nun, bisher lief alles gut, ich bin aber heute zum Kapfscript gekommen. Habe das geschrieben, so wie ich es schreiben würde und liess eine Proberunde laufen. Das ergebnis: 2 min Ladezeit
Ich bin noch ein Anfänger in PHP und werde deshalb einige Dinge zu kompliziert aufgeschrieben haben.
Nun bräuchte ich jemanden, der sich mit PHP wirklich auskennt und dem ich die Datei mal schicken kann, damit er sie sich mal anschaut und überarbeitet. Ausserdem müsste es eine zuverlässige Person sein, denn das Copyright dieser Datei liegt bei mir. Ich hoffe nicht, dass man das mit Perl lösen muss, denn davon habe ich überhaupt keine Ahnung.
Also, bitte meldet euch.
Luziver

PS: Wer sich die Ausführung des Scripts schonmal ansehen will, kann diesen Link benutzen.
 
Zuletzt bearbeitet:
Erstmal solltest du überprüfen, ob die lange Laufzeit wirklich an php liegt, oder ob es nicht viel mehr deine Datenbankanfragen sind, die soviel Zeit schlucken. Ich merke zur Zeit gerade selbst, wieviel man als Anfänger da nicht überdenkt und erst Jahre später bemerkt, wenn die Datenbestände so groß werden, dass es nicht zu übersehen ist.
 
Wenn du nicht gerade seltsame Endlosschleifen eingebaut hast, tippe ich auch eher mal auf die DB Abfragen. Hatte ich letztens auch bei einer kleinen Sache. Pro Zeile 3-4 Sekunden gebraucht, dann etwas umgestellt und dann für alle Zeilen (~100) zusammen keine 0,01 Sekunden
 
Erstmal solltest du überprüfen, ob die lange Laufzeit wirklich an php liegt, oder ob es nicht viel mehr deine Datenbankanfragen sind, die soviel Zeit schlucken. Ich merke zur Zeit gerade selbst, wieviel man als Anfänger da nicht überdenkt und erst Jahre später bemerkt, wenn die Datenbestände so groß werden, dass es nicht zu übersehen ist.

Davor wurde ich gewarnt^^und hab den Fahler net gemacht, es ist nur eine Datenbank abfrage aber eine ziemlich komplizierte Rechnung, wobei sich das Problem im Mom in eine andere Richtung zu verschieben scheint...
Klick mal den Link, dann sieht man das Prob.
 
Klick mal den Link, dann sieht man das Prob.
Negative Lebenspunkte, oder was meinst du? Das wär ja dann eher ein inhaltliches Problem, hat ja mit Performance nichts zu tun.

Aber die Anzahl an Datenbankanfragen ist nicht unbedingt entscheidend. Ein komplexer Query kann viel viel ungünstiger sein als ein Dutzend harmlose Queries. Ist zwar schön, wenn man alles in einem Query erledigen kann, aber wenn man dafür komplizierte Joins und komplette Table-Scans in Kauf nimmt, ist man besser beraten, Informationen redundant zu speichern und mehrere Queries zu verwenden.
 
Negative Lebenspunkte, oder was meinst du? Das wär ja dann eher ein inhaltliches Problem, hat ja mit Performance nichts zu tun.

Aber die Anzahl an Datenbankanfragen ist nicht unbedingt entscheidend. Ein komplexer Query kann viel viel ungünstiger sein als ein Dutzend harmlose Queries. Ist zwar schön, wenn man alles in einem Query erledigen kann, aber wenn man dafür komplizierte Joins und komplette Table-Scans in Kauf nimmt, ist man besser beraten, Informationen redundant zu speichern und mehrere Queries zu verwenden.

Jep negative Lebenspunkt, an der DB liegt es glaub ich wirklich nicht. Hab jetzt auch super Support von strolch00 zur Zeit.
 
Jep negative Lebenspunkt, an der DB liegt es glaub ich wirklich nicht. Hab jetzt auch super Support von strolch00 zur Zeit.

Du musst dir meiner Erfahrung nach beim Konzept überlegen:

:arrow: Ausgangslage
:arrow: Was bekommt der User zu sehen / Endergebnis

Nur diese Sachen müssen stimmen, es müssen nicht immer zwischendrin brauchbare Ergebnisse vorhanden sein.

Versuche ja nicht immer, zu menschlich zu denken. Welche Einheit jetzt in einem Browsergame zuerst angreift, wie viele ... überlass das ruhig dem Pseudo-Zufall (sprich z.B. rand()). Solange das Ergebnis aus menschlicher Sicht einigermaßen gleichmäßig "verteilt" ist (oder auch nicht, da müsste man dann halt von der Story her kreativ sein, z.B. mit zufälligen Angrifstruppen o.ä.), wird jeder Spieler dir das abnehmen. Der Spieler will seine Spielwelt perfekt haben, kleinere Ungereimtheiten bügelt sein Gehirn sozusagen für dich aus.

Ich weiß jetzt nicht, in wie fern das zu deinem Kampfscript und Spielkonzept passt, aber ich hoffe es hilft dir ein bisschen in den Grundfragen weiter ...

Gruß

edit: Und am Besten vorher wirklich Stift und Papier nehmen und ein Konzept erstellen UND ausarbeiten. So ersparst du dir wirklich viel Zeit und Nerven ;)