[JavaScript] Zeiten im IE & FF

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

  • [JavaScript] Zeiten im IE & FF

    Hoi,

    ich habe hier ein kleines Problem. Ich messe die Dauer eine XMLHTTPRequests folgendermaßen:

    PHP-Code:
    mytime = new Date();
    start_time mytime.getTime();

    //mache eh ma eh bissi requesterei

    mytime = new Date();
    end_time mytime.getTime(); 

    var 
    duration end_time start_time
    Soweit so gut. Auf dieser Basis berechne ich dann den Dursatz pro Sekunden.
    PHP-Code:
    var throughput size*1024/(duration/1000); 
    Auch klar soweit. Das Problem ist nun, das in den beiden Browser leicht unterschiedliche Wert rauskommmen (Siehe anhänge) und dadurch für meine Berechnungen 2 unterschiedliche Bandbreiten raus kommen.


    FF = Download 2.381kbit/s - 298kb/s
    IE = Download 1.742kbit/s - 218kb/s

    Der IE liegt, wenn ich andere Speedtests im Internet vergleiche, näher dran. Hier ist ein 2Mbit SDSL verhanden - theoretischen maximum 2048kbit/s. Opera darf ich garnicht erwähnen, der bekommt 3194kbit/s raus.

    Hat jemand irgend ne Idee wie ich FF und die anderen "genauer" machen kann?

    Danke!
    Zuletzt geändert von prego; 04.04.2006, 13:28.

  • #2
    zeiten.png

    link Firefox, recht IE

    EDIT:
    Hab mal ein Bild wo beide Zeiten-Popups zusammen drin sind hier hin gepackt - sollte dann einfach zu vergleichen sein...
    Angehängte Dateien
    Zuletzt geändert von prego; 04.04.2006, 13:29.

    Kommentar


    • #3
      Re: [JavaScript] Zeiten im IE & FF

      Original geschrieben von prego
      Das Problem ist nun, das in den beiden Browser leicht unterschiedliche Wert rauskommmen (Siehe anhänge) und dadurch für meine Berechnungen 2 unterschiedliche Bandbreiten raus kommen.
      Es ist hoffentlich klar, dass du beim Betrachten solcher Momentaufnahmen sowieso keine exakten und vor allem relevanten Ergebnisse erwarten kannst.

      Die Belastung des Servers zum Zeitpunkt deiner Anfragen kann unterschiedlich ausfallen, die jedes einzelnen Hops auf der Strecke vom Server zum Client ebenfalls, etc. pp.

      Außerdem besagt die beobachtete Abweichung ja kaum, dass einer der beiden Browser "falsch" zählt. Du weißt nicht, was die beim Absetzen eines HTTP-Request für individuelle Eigenarten haben, welche Unterschiede sie dabei machen, etc. - sprich, vielleicht haben deren Requests einfach unterschiedliche Ausmaße, die du nicht berücksichtigen kannst ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ok, da geb ich dir recht, ist mir in dem Sinne ja auch klar - ich bin eben nur verwundert, das im Firefox 2,7Mbit rauskommen. Ich hab aber gerade mal auf nen 2000er TDSL umgesattelt wo nicht die ganze Firma mit dran hängt und da stimmen die Werte halbwegs. Zumindest im Firefox. Ie ist jetzt ein wenig zu hoch.... *hmz*

        Grundliegende Frage:
        Rechne ich richtig?
        PHP-Code:
        var down_result = new Array();

        //Beispielwerte:
        var size 512//größe des Datenpäckchens in kb
        var duration 910//Dauer in ms

        //Rechnung byte/Sekunden
        var throughput  size*1024/(duration/1000);

        down_result[i] = throuput

        //am Ende Ergebniss mitteln:
        var throughput_sum 0;
        for(var 
        0down_results.lengthk++){
          
        throughput_sum += down_results[k];
        }

        // mal 8, weil ich ja kbit/s und nicht kbyte/s raus haben möchte
        down_result = (throughput_sum/down_sizes.length)*8

        Kommt so hin, oder?
        Zuletzt geändert von prego; 04.04.2006, 13:56.

        Kommentar


        • #5
          Original geschrieben von prego
          Grundliegende Frage:
          Rechne ich richtig?
          Das kommt wohl stark darauf an, mit welchen Werten du rechnest.
          PHP-Code:
          //Beispielwerte:
          var size 512//größe des Datenpäckchens in kb 
          Wofür steht das, und wie wird es ermittelt?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ich habe einern Array mit größen.
            PHP-Code:
            var down_sizes = new Array(64,128,256,512,1024); 
            Diese größen werden durchlaufen und es wird ein XMLHTTPRequest an eine garbage-Datei mit der Option der Päckchengröße gemacht.

            PHP-Code:
            //garbage.php
            if(isset($_GET['data_length'])){
                
                
            $i=0;
                while(
            $i < (int)$_GET['data_length']){
                    for(
            $j=0$j 32$j++){
                        echo 
            md5(microtime());
                    }
                    
            $i++;
                }
            }
            //32 mal den md5 der microtime ergeben 1024byte 
            Die Dauer dieses Requests messe ich - siehe oben - und versuche dadurch Rückschlüsse auf die Bandbreite zu ziehen.

            Kommentar


            • #7
              Original geschrieben von prego
              Diese größen werden durchlaufen und es wird ein XMLHTTPRequest an eine garbage-Datei mit der Option der Päckchengröße gemacht. [...]
              Die Dauer dieses Requests messe ich - siehe oben - und versuche dadurch Rückschlüsse auf die Bandbreite zu ziehen.
              Und den Overhead von HTTP, TCP etc. vernachlässigst du dabei ...?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Da hast du verdammt recht!

                Man sagt ja übern Daumen 10% sind TCP Overhead. Das heißt ich messe mit 10% mehr Daten. *doh*

                Gibt es einen genauen Weg den TCP Overhead zu berechnen?

                Kommentar


                • #9
                  Original geschrieben von prego
                  Gibt es einen genauen Weg den TCP Overhead zu berechnen?
                  Mit Javascript sicher nicht - dafür befindet sich das auf einer zu hohen Ebene.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Danke wahsaga, das verstehe ich - aber irgendwas kann trotzdem nicht stimmen.

                    Wenn ich ja in Wirklichkeit mehr Zeit brauche, da ich ja größere Datenmengen als die von mir erwartete 512kb übetrage, dürfte ich niemals über die theoretisch maximalen 2048kbit/s drüber kommen. Ich müsste immer drunter sein, in etwa um 10% (oder wieviel auch immer) weil ich ja schließlich mit einer Zeit die sich auf ~540kb bezieht rechne und diese mit 512kb in Verbindung bringe - also sollte meine gemessene Geschwindigkeit langsamer sein.

                    Dennoch zeigen mir beide Browser unterschiedliche Werte und Zeiten. Das eine gewissen Schwankung aufgrund der Hops oder des Servers dazu gehört ist mir klar. Nur ich kann nicht ständig in dem einen Browser über 2100kbit/s liegen und in dem anderen unter 1800kbit/s.

                    Im übrigen ist der Firefox momentan beständiger - der IE schießt ständig über Ziel hinaus - anfangs war es umgedreht. Ich habe allerdings nichts am Script geändert.

                    Wenn irgendjemand noch nen Tipp hat - bitte her damit

                    Kommentar


                    • #11
                      Hi wiedermal,

                      ich habe mittlerweile rausgefunden warum immer unterschiedliche Wert rauskamen. Es hat rein garnichts mit IE oder FF zu tun. Mein Garbage-File generiert Text.

                      Wie ich nun mittlerweile rausgefunden habe benutzen unsere Webserver mod_deflate und komprimieren somit die ausgabe. Dadurch war mein 1024kb Text-Test-File mal 614kb, mal 560kb groß.

                      PHP-Code:
                      apache_setenv('no-gzip''1'); 
                      und der Käse war gegessen.

                      *grrr* Und mit sowas schlägt man sich den Nachmittag um die Ohren.


                      Danke trotzdem.

                      Kommentar

                      Lädt...
                      X