Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Browser nimmt Einfluss auf PHP-Ladezeit

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Browser nimmt Einfluss auf PHP-Ladezeit

    Hallo,

    folgendes Problem mit einem selbst geschriebenen CMS:

    * Geht ein nicht registrierter Benutzer auf die Seite, funktioniert alles super.
    * Ist man registriert / eingeloggt, braucht PHP etwa 20 Sekunden, um die Seite zusammen zu bauen (gemessen per Timestamps in der index.php)
    * Benutzt man den aktuellen Opera-Browser, lädt die Seite auch als eingeloggter User schnell ( ~~ 0.9 Sec)
    * Dieses Problem tritt nur temporär für ein paar Tage auf, dann ist alles wieder gut.
    * Laut Hoster ist es in solchen Fällen meist so, das ein anderer User auf dem Shared Server die ganze CPU verbrät.


    Das CMS wurde nicht von mir geschrieben und diese Art von Fehler ist ziemlich neu für mich, da es lediglich den PHP-Interpreter betrifft, daher weiß ich nichtmal im Ansatz, wo ich mit der Fehlersuche beginnen soll.

    Hat jemand eine Idee, wo solche Fehler herkommen können? Ist es doch ein Fehler auf Seiten des Hosters (Konfiguration)?
    Wie gehe ich bei sowas vor?

    Ich weiß leider nicht, wo ich nach dem Fehler suchen soll, ich bin schlicht überfordert :/

    Kann da wer Tipps oder Denkanstöße geben?

    LG, Kagu


  • #2
    Zuerst mal, wenn man shared hosting/server wählt, dann kann man keinen Luxus erwarten bzw. das ist halt der Preis den man dafür bezahlt.

    Wegen dem Problem, habe ich keine Ahnung. Aber wenn sonst alles klappt gehe ich davon aus, es liegt am Shared Hosting. Ausserdem würde ich mal schauen was index.php genau macht (inkl. inkludierte/automatisch geladenen Dateien). Evtl. Bottleneck DB oder das CMS macht etwas "komisches", wenn gewisse Infos nicht vorhanden sind.

    Was hast du denn selber schon genau versucht, ausser die Laufzeit des CMS zu messen? Wenigstens hättest Du versuchen könne das Problem besser einzugrenzen Viel erfolg
    Neu bei PHP, lerne aktuell OOP

    Kommentar


    • #3
      Ich habe versucht es einzugrenzen.
      Ich weiß das man eingeloggt sein muss. Ich habe alle möglichen optionalen Contents aktiviert / deaktiviert. Habe mit verschiedenen Usern getestet mit Berechtigungen nehmen / geben etc.
      Ich habe die einzelnen Programmteile zeitlich gemessen - soweit keine Auffälligkeiten, bisher nicht ausmachen können was so lange braucht.

      Nur am Hoster kann es ja nicht liegen denke ich, sonst wäre es ja bei allen Usern so :/

      Kommentar


      • #4
        Zitat von Kagu-chan Beitrag anzeigen
        [...]
        * Laut Hoster ist es in solchen Fällen meist so, das ein anderer User auf dem Shared Server die ganze CPU verbrät.
        [...]
        Bei meinem (Shared)-Hoster hat man garantierte CPU-Zeit. Ein User kann alleine keine 100% des CPU brauchen. Ich empfehle den Hoster zu wechseln.
        GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

        Kommentar


        • #5
          Ein Browser kann die Ladezeit der PHP Anwendung NICHT beeinflussen, da PHP Serverseitig läuft!

          Kommentar


          • #6
            Das ist ja eben das was mich stutzig macht, bei Opera ist es allerdings der Fall...

            Kommentar


            • #7
              Es scheint vielleicht der Fall zu sein, aber es ist es garantiert nicht.
              GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

              Kommentar


              • #8
                Zitat von jprangenberg Beitrag anzeigen
                Ein Browser kann die Ladezeit der PHP Anwendung NICHT beeinflussen, da PHP Serverseitig läuft!
                Session?
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar


                • #9
                  Zitat von jprangenberg Beitrag anzeigen
                  Ein Browser kann die Ladezeit der PHP Anwendung NICHT beeinflussen, da PHP Serverseitig läuft!
                  Es ist aber denkbar, dass PHP serverseitig in Abhängigkeit der vom Browser gelieferten Informationen (Header) unterschiedliche Aktivitäten entfaltet.
                  Die Informationen zum Code sind praktisch null, da ist alles möglich.

                  Ich habe die einzelnen Programmteile zeitlich gemessen - soweit keine Auffälligkeiten, bisher nicht ausmachen können was so lange braucht.
                  Das gibt mir zu denken. In der Summe der partiellen Zeitmessungen sollten dann doch die 20 Sekunden rauskommen?

                  An einzelnen Stellen der index.php den Aufbau der Seite mitloggen inklusive Zeitstempel, das kann ich nur empfehlen. Unter meiner Legende findest du dafür eine Debugklasse, welche du gerne benutzen kannst.

                  LG jspit
                  PHP-Klassen auf github

                  Kommentar


                  • #10
                    ich hab noch nie versucht xdebug woanders als in xampp zu nutzen aber falls es möglich sein sollte gibt es dort den function trace, womit man jeden einzellnen funktionsaufruf loggen kann ohne den code verändern zu müssen
                    http://xdebug.org/docs/execution_trace
                    liebe Grüße
                    Fräulein Dingsda

                    Kommentar


                    • #11
                      Zitat von jspit
                      Die Informationen zum Code sind praktisch null, da ist alles möglich.
                      Ja, leider. Ich poste auch ungern ohne Beispielcode aus eben dem Grund.
                      Wie allerdings schon geschrieben handelt es sich hierbei um ein ganzes CMS von einem ehemaligen Entwickler unserer Seite.
                      Das ganze basiert auf ilch und ist alles andere als sauber gecoded.

                      Zitat von jspit
                      Das gibt mir zu denken. In der Summe der partiellen Zeitmessungen sollten dann doch die 20 Sekunden rauskommen?
                      Es war zumindest auf den ersten Blick nicht zu erkennen, um wirklich eine richtige Aussage treffen zu können müsste ich vermutlich jede Datei auf dem Server bearbeiten. Das ist extrem viel arbeit, da das CMS für seinen Code-Umfang recht wenig kann...

                      Ich arbeite derzeit dran, hab aber derzeit zuhause kein Internet (Es ist also frühestens nächste Woche mit einem besseren ergebnis zu rechnen :/ - Vodafone ist doof :< )

                      Zitat von jspit
                      An einzelnen Stellen der index.php den Aufbau der Seite mitloggen inklusive Zeitstempel, das kann ich nur empfehlen. Unter meiner Legende findest du dafür eine Debugklasse, welche du gerne benutzen kannst.
                      Habe ich mir mal angesehen, danke dafür.
                      Ich habe mir schon ein entsprechendes Skript zurechtgebastelt.

                      ich habe so die Funktionsaufrufe (sofern geloggt), wo sie stattfinden, von wo aus sie aufgerufen werden, mit welchen Parametern und wie lange der Spaß jeweils gedauert hat - mit Hiraicher (falsch geschrieben? O.o) Ansicht kann ich die Infos auch leicht auswerten.

                      Zitat von dingsda
                      ich hab noch nie versucht xdebug woanders als in xampp zu nutzen aber falls es möglich sein sollte gibt es dort den function trace, womit man jeden einzellnen funktionsaufruf loggen kann ohne den code verändern zu müssen
                      Hab auf der Website nicht wirklich durchblick gehabt :/
                      Muss das auf dem Server installiert werden? Ich denke schon, oder?


                      Wenn Ihr Tipps habt nach was ich den Quellcode durchsuchen könnte wäre mir schon weit geholfen...

                      LG Kagu

                      Edit
                      Problem tritt nicht mehr auf und ich hab immer noch kein anständiges Internet, daher vorerst erledigt.

                      Kommentar

                      Lädt...
                      X