debian: apache1.3/2.0: php4: einfaches echo dauert ab 12865 Zeichen extrem lange

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

  • debian: apache1.3/2.0: php4: einfaches echo dauert ab 12865 Zeichen extrem lange

    Moin,

    Ich lasse per php einfachen html-code per echo an den browser senden (genaue Methode siehe unten).

    Nun habe ich dieses Script auf verschiedenen Servern getestet:

    Webspaceanbieter1 (strato) : 0.001s
    Webspaceanbieter2 : 0.0009s
    Mein uralter kleiner HomeTestserver (<1Ghz) : 0.0005s

    Mein 100% idle PIV 2.8Ghz (woody, apache 1.3) : 0.07s
    Mein leicht belasteter Quad Xeon 3 Ghz ( sarge, apache2) : 0.07s



    Habe dann noch weitergehende Tests (auf meinem PIV) mit einem großen und einem kleinen String per echo gemacht und habe extreme Unterschiede in der Zeitmessung bekommen. Ich habe dann solange die Anzahl der Zeichen variiert bis ich den Übergang festnageln konnte :

    Parsetime bis 12864 Zeichen liegt bei etwa 0,0008s und ab 12865 Zeichen bei 0,08s


    Ich vermute mal irgendein Buffer läuft über und dann gibt es eine Zeitaufwendige Operation. Jemand eine Idee welcher das sein könnte oder was sonst diesen Unterschied erzeugt ?

    Gruß
    Pingu12




    PHP-Code:
    <?

    // Benchmark, returns secs + usecs since 01.01.1970
    function utime() {
        $time = explode(" ", microtime());
        $usec = (double)$time[0];
        $sec = (double)$time[1];
        return $sec+$usec;
    }

    $time111 = utime();

    echo ' HIER DER HTML-CODE ';

    $time222 = utime() - $time111;

    echo "<BR><BR>\n\nPARSE TIME: $time222<BR>\n";

    ?>

  • #2
    PHP-Code:
    <?
    // Benchmark, returns secs + usecs since 01.01.1970
    function utime() {
        $time = explode(" ", microtime());
        $usec = (double)$time[0];
        $sec = (double)$time[1];
        return $sec+$usec;
    }

    $time111 = utime();
    echo str_pad('', 12864, 'x');
    $time222 = utime() - $time111;

    echo $time222;

    ?>
    ergibt werte um 0,018 rum.

    PHP-Code:
    echo str_pad(''12865'x'); 
    dagegen - 0,018. gelegentlich 0,019. einmal sogar 0,03.

    sehe darin keine unnatürliche regelmäßigkeit..

    Kommentar


    • #3
      penizillin: Dank dir für deinen Test. Die Grenze ist ja nicht bei jedem gleich, ich sage ja nichtmal, dass sie überhaupt bei jedem existiert. Dann würde ich ja eher einen Bug melden als nach einer Lösung für mein Problem fragen.

      Habe mal am Quad getestet und dort liegt die Grenze leicht verschieden bei
      12860 / 61. Sarge statt woody-System, andere php4-Version und apache 2 statt 1.3.

      Kommentar

      Lädt...
      X