Beiträge von DaBu

    Erst einmal Glückwunsch zur neuen Startseite.


    Einen Verbesserungsvorschlag hätte ich da allerdings, wenn man oben in der Navigation auf News klickt scrollt die Seite auf den Button mit der Aufschrift "GW-Forum".

    Dieser ist auch "nur" auf das gesamte Forum verlinkt. Entweder man schreibt dort News / Forum oder ähnliches und verlinkt direkt auf den besagten Bereich im Forum oder man setzt für News einen weiteren Button daneben, welcher dann auf besagten Bereich verlinkt.


    Es fühlt sich zumindest komisch an, man will zu den News, klick dann auf einen "GW-Forum" Button und muss dann selbst den Newsbereich suchen.


    Vielleicht kann man das ja noch anpassen.


    Gerade fällt mir auf, dass die Startseite doch eine menge Traffic verursacht. Vielleicht könnte man da noch was an den Bildern drehen.

    Ich habe einfach mal angepasste Varianten angehangen die etwas über 3MB weniger Speicher brauchen.


    Lg,
    DaBu

    Einfach die Nachrichten aus dem Nachrichtensystem löschen, die KB's selbst haben nichts damit zu tun.

    Das Aufrufen eines Berichts dauert etwa 150-300 ms. Schneller als alles andere im Spiel aktuell.

    Ich könnte einen langen Monolog darüber halten warum das Spielkonzept von GW ein Performance Killer ist, aber ich belasse es bei einem Punkt der die größten Auswirkungen hat. Jeder kann so viele Flotten wie er möchte so schnell wie er möchte verschicken.


    Bezüglich der KB's die haben keinerlei Auswirkung auf die Performance, nur auf den Speicherbedarf. Man sollte nicht den Fehler machen welchen ich am Anfang gemacht habe, einfach alle Berichte auf Ewig speichern und erst nach 2 Jahren überlegen, dass die doch eine Menge Platz brauchen. Lieber direkt entscheiden nach welchen Kriterien man Berichte nach X Tagen/Wochen löscht.


    Die Berichte haben einen eindeutigen Schlüssel deswegen ist es der Datenbank (fast) völlig egal ob da nun 10 Berichte oder 500 Millionen in einer Tabelle stehen.


    Das Nachrichtensystem kann da schon eher schnell zu einem Problem werden, wenn das Design nicht nahezu perfekt gewählt wurde kann es schnell zu Problemen kommen (Den Fall hatte ich damals bei den Konversationen). Im Nachrichtensystem muss immer auf mehreren Spalten gesucht werden und ähnlich die die Kampfberichte Tabelle werden die Einträge hier sehr schnell, sehr viele. Im Regelfall sucht man nach einem Nutzer und einem Nachrichtentyp, legt man dann dafür einen Index an so kann man mit einer Zeile SQL Code das ganze System extrem beschleunigen.


    Um so mehr Spalten man mit einbeziehen muss für eine Abfrage (in der WHERE Bedingung) um so schwieriger wird es einen sinnvollen Index zu setzen und um so höher ist die Kardinalität (mehr Kombinationen).

    Fängt man nun noch bei großen Datenmengen mit Joins an so wird das ganze schnell sehr unschön.


    Am Schluss bleibt aber noch zu sagen, wenn ich das Spiel heute noch einmal schreiben müsste, würde ich vieles anders machen, es gibt Teile die ich selbst mit dem Refactorn nicht sinnvoll beheben konnte. Deswegen ist es nur logisch dass jeder der so ein Spiel entwickelt viele Konzeptfehler einbauen wird. Niemand hier entwickelt wohl regelmäßig Spiele mit genau diesem Konzept und sagen wir mal so, GW ist eben nicht irgendein OGame Klon bei dem man am Tag nur eine Handvoll Angriffe fliegen kann und wo solche Konzeptfehler nie auffallen werden.


    GW Verursacht mit wenigen Hundert aktiven Spielern in etwa eine Last wie ich sie sonst nur bei Webprojekten mit >100k Nutzern gesehen habe.

    Also abwarten, Andy wird schon einen Weg finden mögliche Konzeptfehler gerade zu ziehen, noch ist das erste Universum nicht gestartet, noch kann also alles leicht umgeworfen werden.

    Die Datenbank auf mehrere Server zu verteilen ist etwas übertrieben. Ich sag nur 800 aktive Spieler, 4 Kerne, 16 GB RAM und alles auf einer Kiste ohne nen Redis oder Memcached dazwischen zu haben.

    Einfach regelmäßig seinen Code überdenken und refectorn.


    Meine Nachrichtenseite ist etwas schneller geworden (etwa 2 Sekunden nur noch).

    Aus diesem Grund lief GigraWars mit einer nginx Konfiguration und nicht mittels Apache.

    Wenn der Webserver nicht mehr in der Lage war die Anfragen alle abzuarbeiten hat er sie einfach stumpf verworfen.


    Dadurch sind von den 20mio Request im Monat etwa 1k einfach hops gegangen, aber ich denke dass wird weniger gestört haben, als wenn ständig alles für alle langsam wird.

    (Ohne Werbung waren die Ladezeiten ja auch gut, zumindest wurde war mir nichts anderes bekannt) (Außer bei den User Konversationen *hust*)

    Die Übersichtsseite lädt verhältnismäßig schnell bei mir. Habt ihr mal geschaut ob sie schneller wird wenn ihr keine Flotten in der Luft habt?

    Die Übersichtsseite ist mit Abstand die schlimmste Seite im GW Spielkonzept. Es müssen Daten aus sehr vielen Quellen gezogen werden,

    also Flotten, Nachrichten, Planeten, Gebäudeschleife sowie Forschungsschleife.


    Wenn ich versuche über die Übersicht meine Verteidigungsnachrichten als gelesen zu markieren dann läuft der Request nach 65 Sekunden in ein Timeout,

    dabei ist das eigentlich eine ziemlich simple Aktion.

    SQL
    1. UPDATE messages SET read = 1 WHERE user = dabu AND message_type = 'defense'

    Vielleicht helfen ja ein paar Indices.


    Es macht mich etwas stutzig, dass ich den Timeout erst so Spät bekomme, man sollte da eigentlich nicht über 30 Sekunden gehen.

    wenn du weiter oben mal gelesen hattest, wurdest du sehen das ich mich fur hilfe bedankt habe

    Richtig, du hast dich für einen Workaround bedankt, was hat das mit meiner Kritik zu tun, dass es dir gefühlt eher um eine Lösung deines Problems ging als um die Lösung des Problems. Aber wir kommen mal wieder um Thema ab ;)

    Statt hier zu meckern wäre es sinnvoller zu sagen was man genau gemacht hat bevor die Schleife verschwunden ist. Allerdings zeigt schon der Titel, dass die Intention eher eine andere war als zu helfen. Schade

    Also noch mal langsam: I c h b e k o m m e k e i n n e u e s P a s s w o r t.

    A c h s o , d a s s i s t n a t ü r l i c h d o o f , i c h h a b e f ü r d i c h m a l d a s T h e m a d a z u w i e d e r a u s g e g r a b e n .


    Das Thema hier kann dann wohl zugemacht werden, dass ein Name oder eine Mailadresse schon vergeben ist, ist ja eher kein Fehler.

    Oder einfach Webpack nutzen um scss und js zu bauen, dabei wird ein Hashwert aus dem Inhalt generiert, dann muss man auch nirgends einen timestamp vom deployment speichern oder eine Zahl hochzählen.

    Frohe Weihnachten und angenehme Feiertage.


    (Dieses Jahr gibt es zum ersten mal keine Diskussion über eine Angriffssperre :P)

    Und jetzt wieder an die Arbeit...