tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
356
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    Wie manche vielleicht bereits wissen, bin ich in letzer Zeit dabei, ein Browsergame zu erstellen. Geht mitlerweile auch ganz gut vorran.
    Ich erstelle jetzt einfach mal einen Thread mit allgemeinem Titel, dass ich ihn öfters verwenden kann ohne jedes mal einen neuen Thread öffnen zu müssen, wenn ich eine Frage habe.

    Zu meinem aktuellen Problem:

    Ich habe natürlich ständig die Daten der User zu verwalten. Es ist hier viel zu speicherlastig jedes mal einen Datenbankquery abzusenden, wenn der User einen Reload der Seite macht. Also serialisiere ich meine Klassen mit den entsprechenden Daten und speichere sie in die Session (Namen, Punkte, Besitz, ...).
    Dann bei einem Reload der Seite wird geprüft ob bereits Daten in der Session vorhanden sind, wenn ja daraus geladen, wenn nein dann aus der Datenbank.
    Mich würde interessieren wie das Resourcenmäßig hier aussieht, ist das entlastend genug?
    Gibt es eine bessere Möglichkeit die Userdaten ständig parat zu haben, mit welcher aber die Datenbank nicht ständig durch sehr viele Querys belastet wird?
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  2. #2
    Registriert seit
    Jul 2001
    Ort
    Bayern
    Beiträge
    969
    Normal ist es so, dass dein RAM durch die Sessions voll ist, bevor die Datenbank irgendwelche Probleme durch Queries bekommt. Dafuer ist die ja da. Du musst wohl etwas ausprobieren.
     

  3. #3
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    Hast du es schon in Erwägung gezogen die Daten asynchron zu speichern/nachzuladen.
    Dann musst du nicht immer die ganze Seite "laden".
     

  4. #4
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    @Wolfsbein: Ich folgere aus deiner Aussage, dass meine MySQL-Datenbank schneller sein sollte, als die Session. Ich muss mal schauen ob ich hier Testberichte finden kann.

    @tobee: Meinst du mit asynchron, dass immer nur geladen soll was gerade benötigt wird oder, dass ich lade, auch wenn der Nutzer gerade nichts tut und es Cache?
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  5. #5
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    Es würde mir helfen wenn ich wüsste um welche Art von Browsergame es sich handelt
     

  6. #6
    Registriert seit
    Jul 2001
    Ort
    Bayern
    Beiträge
    969
    Zitat Zitat von CookieBuster Beitrag anzeigen
    @Wolfsbein: Ich folgere aus deiner Aussage, dass meine MySQL-Datenbank schneller sein sollte, als die Session...
    Sie muss keineswegs schneller sein. Aber wo speicherst du denn die Session? Im RAM. Und der ist irgendwann voll. Also wuerde ich das eher reduzieren und schauen, dass die DB viel Platz im RAM hat. Den die brauchst du auf jeden Fall immer wieder.
     

  7. #7
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    @tobee: Als Vergleich könnte man Shakes & Fidged heranziehen, das ist vom Grundlegenden Prinzip her gleich/ähnlich

    @wolfsbein: Im Moment lade ich 2 Klassen in die Session mit nur wenigen Daten. Viel mehr soll es auch nicht werden. Diese Beiden Klassen beinhalten alle Userdaten und einige Daten für den Login.
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  8. #8
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    Es ist ein neues Problem aufgetaucht. Das oben angesprochene "besteht" noch, soll heißen ich hätte gerne noch andere Meinungen zu dem Thema.

    Zum neuen Problem:

    Ich habe eine Rangliste, welche die User nach verschiedenen Kriterien sortiert. Wenn der User nun auf die Rangliste geht, soll natürlich die Seite angezeigt werden, auf welcher sich der User befindet (also entsprechend seinem Rang).
    Meine bisherige Idee besteht darin, den Rang des Users beim Einloggen (oder beim ersten Besuch der Rangliste pro Session) in der Session zu speichern. Dabei werden einfach alle Daten ausgelesen und der Rang des Users beim Durchlaufen dieser Daten gespeichert. Über den hier gespeicherten Rang kann ich dann das entsprechende Limit setzen.

    Gibt es hier eine Lösung, bei welcher ich nicht alle Daten aus der Datenbank aufrufen muss, sondern ein Teil reicht, ich aber trotzdem die Platzierung des Users herausfinden kann?
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

Ähnliche Themen

  1. Doc/View-Problematiken
    Von mstank im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 17.01.05, 15:47