kola: Ladezeit mit minimiertem fenster

Servus,

Ich hab gerade ein Programmteil meines selbst gebastelten PHP-Progs auf Performance getestet.
Ich habe hier 2 Dell Rechner stehen. Zunächst habe ich das ganze nur auf der lahmen Kiste laufen lassen mit Ladezeiten bis zu 10 Minuten...
 - An Dieser stelle möchte ich erwähnen, dass 600 Datensätze eingelesen werden und innerhalb dieser for-Schleife noch jeweils 50 weitere Datenbank-abfragen laufen - ...also habe ich XAMPP mal auf der Schnellen Kiste Installiert und siehe da schon bekomme ich Ladezeiten von: 170-180 Sek.
Da mir das immer zu lange gedauert hat habe ich während dem Laden mir das Script nochmal angeschaut um evtl überflüssigen Code raus zu löschen, doch leider macht alles Sinn ;) ...
uups, wieso lädt der auf einmal so schnell? 74 Sekunden? das kann gar nicht sein!? ... Nur weil ich den Firefox minimiert habe? nee.. oder doch? ..... anscheinend schon: 108,112 Sekunden ergaben die nachfolgenden Tests.
Und die Testreihe geht noch weiter: Nun habe ich den Schnellen Dell-Rechner nur als "Server" laufen lassen und den langsamen als Client.
Ohne Firefox minimierung: 121,108,118
Mit  Firefox minimierung: 48,49,49,33!

Und genau das geht mir nicht in den Kopf!
Als alles auf einer Kiste gelaufen ist also Server und Client auf einem Rechner konnte ich es ja noch verstehen, aber das es auch im letzten Beispiel etwas ausmacht hätte ich nicht erwartet!

Wie kann das sein?

Kola

  1. Servus nochmal,

    • War meine Ausdrucksweise bzw. Beschreibung etwa..
        - Schlecht?
        - Langweilig?
        - undeutlich?
    • Ist hier heute nix los?
    • Bin ich zu ungeduldig?
    • Bin ich doof?
      oder
    • Hat keiner eine Erklärung?

    Kola

    1. Wüäää,

      *heeuul* *schrei* *wein*

      was ist nur los?

      kola

    2. gudn tach!

      • Bin ich zu ungeduldig?

      ich denke es.

      wenn ich dich richtig verstanden habe, hast du zwei fragen, oder?

      1. warum laed firefox ne seite schneller, wenn er minimiert ist?
      2. warum ist es u.u. schneller, server und client nicht auf einem, sondern auf zwei verschiedenen computern laufen zu lassen?

      zu 1. ich vermute folgendes: z.b. bei blinden tabellen wird abwechselnd ein stueck des codes umgesetzt und dann die tabellengroessen angepasst. wenn das alles staendig auf dem bildschirm _angezeigt_ werden soll, frisst das mehr prozessorleistung, als wenn die "zwischenergebnisse" _nicht_ staendig angezeigt werden sollen. klingt logisch, oder?

      zu 2. wenn z.b. eine sehr lange und womoeglich blinde tabelle geladen werden soll, dann frisst das prozessorleistung. die datenbank-geschichte frisst ebenfalls. wenn also ein teil der arbeit ausgelagert - also quasi parallel gerechnet - werden kann, ist das insg. schneller, unter der voraussetzung, dass nicht allzu viel traffic erzeugt wird.

      prost
      seth

      1. zu 2. wenn z.b. eine sehr lange und womoeglich blinde tabelle geladen werden soll, dann frisst das prozessorleistung. die datenbank-geschichte frisst ebenfalls.

        Das war mir schon klar...

        zu 1. ich vermute folgendes: ... als wenn die "zwischenergebnisse" _nicht_ staendig angezeigt werden sollen. klingt logisch, oder?

        Es bremst aber doch nicht etwa den Server, oder?
        Also wenn zwischenergebnisse auf der Client Seite angezeigt werden, dann sind das doch nur die Ergebnisse die der Server zu verfügung stellt bzw die abgefragt wurden.
        Das der Client zusätzlich die Aufgabe hat die Seite auch darzustellen darf doch nicht die Ladezeit des Servers bremsen..?..?

        Das ist ja grad das was nicht in meinen Kopf will.

        kola

        1. Hallo,

          zu 1. ich vermute folgendes: ... als wenn die "zwischenergebnisse" _nicht_ staendig angezeigt werden sollen. klingt logisch, oder?
          Es bremst aber doch nicht etwa den Server, oder?

          doch, wenn beide auf derselben Maschine laufen, dann natürlich schon.

          Also wenn zwischenergebnisse auf der Client Seite angezeigt werden, dann sind das doch nur die Ergebnisse die der Server zu verfügung stellt bzw die abgefragt wurden.

          Also ganz einfach:
          Der Datenbankserver braucht Rechenzeit, um die Datensätze aus der DB zu holen.
          Der Webserver braucht Rechenzeit, um die Seite aufzubereiten und zusammenzustellen.
          Der Browser braucht schließlich Rechenzeit, um die Seite grafisch darzustellen.
          Das alles läuft quasi-gleichzeitig ab.

          Laufen nun alle drei Prozesse auf derselben Maschine, dann konkurrieren sie natürlich miteinander um CPU-Leistung. Sprich: Die verfügbare Rechenzeit wird unter den dreien aufgeteilt; jeder einzelne Prozess läuft langsamer, als wenn er alleine auf der Maschine wäre.
          Wenn nun der Browser minimiert wird, und sich daher entschließt, die Grafikausgabe solange einzustellen, steht diese Rechenleistung den anderen Prozessen zur Verfügung, es geht insgesamt schneller.

          Das der Client zusätzlich die Aufgabe hat die Seite auch darzustellen darf doch nicht die Ladezeit des Servers bremsen..?..?

          Doch, wie gesagt: Wenn sie auf derselben Maschine laufen, dann schon.

          So long,
           Martin

          --
          F: Was ist eigentlich aus deinem schlimmen Durchfall geworden?
          A: Mein Arzt hat mir Valium verschrieben.
          F: Und das hilft?
          A: Naja, ich mach mir immer noch in die Hose. Aber inzwischen ist es mir egal.
          1. doch, wenn beide auf derselben Maschine laufen, dann natürlich schon.

            Jiahaa Das ist doch klar! Das ist verständlich, aber bei der Client-Server-Konstilation ist das ja auch der Fall.

            Der Datenbankserver braucht Rechenzeit, um die Datensätze aus der DB zu holen.

            • Logisch

            Der Webserver braucht Rechenzeit, um die Seite aufzubereiten und zusammenzustellen.

            • Klar

            Der Browser braucht schließlich Rechenzeit, um die Seite grafisch darzustellen.

            • Macht Sinn

            ,aber warum läuft es auch schneller wenn ich den Firefox auf dem Client minimiere?

            Kola