Wo bleibt die Komprimierung?

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

  • Wo bleibt die Komprimierung?

    Hallo,

    ich hab' so meine Probleme mit der GZip-Komprimierung von PHP.

    PHP-Version: 4.3.4
    Prozessor sollte gut genug sein (AMD 2000+), Arbeitsspeicher ausreichend

    Ich arbeite mit der einfach Methode, dass ich am Anfang der Seite einfach 'ob_start('ob_gzhandler')' aufrufe.

    Trotzdem aber nützt das überhaupt nichts. Ohne Komprimierung ist der Seitenaufbau sogar schneller!

    Woran kann das liegen?

    MfG, rob

  • #2
    schau mal bitte ins Apache log, wieviel Bytes "ausgeliefert" werden mit und ohne Komprimierung,
    dann weißte wo diese bleibt
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Hmm

      Ungepuffert:

      127.0.0.1 - - [03/Jan/2004:14:05:25 +0100] "GET /vwar/war.php?s=0&page=All&showgame=&showgametype=&showmatchtype=&sortby=&sortorder=desc HTTP/1.1" 200 10913

      Gepuffert:

      127.0.0.1 - - [03/Jan/2004:14:06:16 +0100] "GET /vwar/war.php?s=0&page=All&showgame=&showgametype=&showmatchtype=&sortby=&sortorder=desc HTTP/1.1" 200 320875


      Da scheint sich also doch was zu tun

      Aber wieso kann es trotzdem sein, dass da anscheinend der Seitenaufbau länger geht?
      Ich rufe am Anfang microtime() auf und gebe am Schluss die Differenz aus. Beim ungepufferten Durchgang beträgt die immer weniger...

      Kommentar


      • #4
        Weil der Apache die Seite ja auch noch komprimieren muß?
        Das dauert auch seine Zeit!

        Außerdem muß dein Browser die ja auch wieder auspacken.
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          Original geschrieben von TBT
          Außerdem muß dein Browser die ja auch wieder auspacken.
          zumindest das düfte aber auf die "messung" mit microtime keinen einfluss haben ;-)
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Aber was bringt mir dann eine Komprimierung, wenn daraus nicht einmal einen Geschwindigkeitsgewinn resultiert?

            Kommentar


            • #7
              traffic-ersparnis ...?

              und idR. auch schnelleren seitenaufbau beim client, dadurch das weniger datenvolument übertragen werden muss.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von roobin
                Aber was bringt mir dann eine Komprimierung, wenn daraus nicht einmal einen Geschwindigkeitsgewinn resultiert?
                Das ist nunmal so, wenn du noch ein wenig mehr Geschwindigkeit rausholen willst, dann musst du die GZIP Komprimierung so aufbauen:
                PHP-Code:
                <?php
                ob_start
                ();
                // ausgabe

                $contents ob_get_contents();
                ob_end_clean();
                header('Content-encoding: gzip');
                echo 
                gz_encode($contents);
                ?>
                Das hat dann aber den Nachteil das nicht georüft wird ob der Browser das unterstützt, aber das kann man ja auch noch coden.
                btw: GZIP Komprimierung ist immer langsamer weil, der gesamte Dokumentinhalt erstmal gecached werden muss, vielleicht wäre ja auch PEAR::Cache etwas für dich, der schreibt das gecachte in eine Datei und liest diese dann aus!

                Kommentar


                • #9
                  Original geschrieben von electr0n
                  Das ist nunmal so, wenn du noch ein wenig mehr Geschwindigkeit rausholen willst, dann musst du die GZIP Komprimierung so aufbauen: [...]
                  das kannst du aber auch einfacher haben:
                  PHP-Code:
                  ob_start('ob_gzhandler'); 
                  das alleine am anfang des scriptes reicht vollkommen aus.

                  den rest mit ob_get_contents(), header() etc. kannst du dir dann sparen.
                  Das hat dann aber den Nachteil das nicht georüft wird ob der Browser das unterstützt, aber das kann man ja auch noch coden.
                  diese überprüfung macht php bei ob_gzhandler auch schon von selber :-)
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Huhu, ich hab schon lange von gehört, hab mir das aber erst heute angeguckt, weil mein Forum bei 74396 Beiträge in 11288 Themen
                    schon bissel bemekbar lamer ist, wie früher ^^
                    Alo hab ich mir nen WBB 1.2 hack für gesaugt, hat aber irgendwie nicht gefunzt, naja egal ich werds noch hinkriegen.

                    So meine Sache ist die, ich hab das jetzt einfach auf meine Page gepackt:
                    <?php
                    ob_start('ob_gzhandler');
                    ?>

                    Ganz oben im Header. Meine Messung ergab:
                    danach Ladezeit: 0.470289 Sekunden.
                    davor Ladezeit: 0.170289 Sekunden.

                    Also eine ziemlich feine Sache, nun meine Frage, muss es unbeding ganz am Anfang stehen? Ich hab damals die Templates der Page bissel behindert gecodet, dass ich das nicht ganz oben stehen lassen kann sondern erst vor Metatags.

                    Und die zweite Frage, gibt es noch solche Browser, die sowas nicht untrstützen? Also meine Community wird von Gamern besucht und die haben alle meist Windoofs. Aber nachfragen schadet ja nicht....

                    Kommentar


                    • #11
                      Original geschrieben von archie
                      nun meine Frage, muss es unbeding ganz am Anfang stehen?
                      das würde ich wohl meinen wollen.

                      schließlich kannst du ja wohl schlecht die eine hälfte eines ressource unkomprimiert und die andere komprimiert ausliefern lassen, hm?

                      Ich hab damals die Templates der Page bissel behindert gecodet, dass ich das nicht ganz oben stehen lassen kann sondern erst vor Metatags.
                      tja, shit happens.

                      Und die zweite Frage, gibt es noch solche Browser, die sowas nicht untrstützen?[/B]
                      dieser mechanismus, wie er in PHP implementiert ist, wertet von selber die request header des clients aus, ob dieser darin angibt, komprimierung zu verstehen.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Thx, für eine gute schnelle Antwort!
                        Muss dann wohl manuell überall einfügen :/

                        Kommentar

                        Lädt...
                        X