Rolf B: (Ergänzung)

Beitrag lesen

Hallo ursus,

es ist gar nicht so einfach, das zu benchmarken, weil ich zumindest beim Firefox Laufzeiten bekomme die sich nur durch "wegoptimieren" erklären lassen. um Umfeldeinflüsse auszuschließen, habe ich die Messschleife mal so geändert:

Schleife 1 - soll eine Baseline liefern.

let q = [];
for ( let i=1; i < 1000; i++ ) {
	for ( let p = 0; p < len; p++ ) {
    let tt = s[p];
    q.push(s)
	}
}

Läuft im Fuchs (v60.3 esr) unter 20ms durch. Chrome (v70) gut 30ms.

Schleife 2 - konstanter Replace:

let q = [];
for ( let i=1; i < 1000; i++ ) {
	for ( let p = 0; p < len; p++ ) {
    let tt = s[p];
    q.push(s.replace('a', ' '));
	}
}

Firefox etwas über 20ms. Chrome um 400-500ms (starke Schwankungen, verdammte virtuelle Maschine). Das bedeutet jetzt nicht, dass der Fuchs beim Replace rasend schnell ist, sondern dass der schlaue Fuchs offenbar erkannt hat dass hier eine Operation herausfaktoriert werden konnte.

Schleife 3 - variabler Replace:

let q = [];
for ( let i=1; i < 1000; i++ ) {
	for ( let p = 0; p < len; p++ ) {
    let tt = s[p];
    q.push(s.replace(tt, ' '));
	}
}

Firefox jetzt bei 250-300ms, mit Ausreißern unter 200 und über 400. Chrome unverändert.

D.h. die hochgelobte V8 Engine von Chrome ist hier tatsächlich vom Mozilla-Fuchs abgehängt worden. Ist natürlich nicht repräsentativ für allgemeine Performance.

Mit Objekten sieht das so aus:

Schleife 1: Fuchs 130-140ms, Chrome ebenso, scheint leicht langsamer

Schleife 2: Fuchs um 1400ms!!!!, Chrome um 750ms

Schleife 3: Zeiten unverändert.

Hier ist die Mozilla-Herrlichkeit am Ende.

Aber egal ob V8 oder Spidermonkey, es ist viel langsamer, das String-Objekt vorzuhalten statt ihn beim Aufruf ständig boxen zu lassen. Offenbar ist dieses Boxing eine Lüge für Kinder und die Wahrheit ist ganz anders...

Rolf

--
sumpsi - posui - clusi
0 69

Cast: String oder new String

pl
  • javascript
  1. 0
    dedlfix
    1. 0
      pl
    2. 0
      Rolf B
      1. 0
        pl
        1. 1
          dedlfix
          1. 0
            pl
            1. 0
              dedlfix
              1. 0
                pl
          2. 0
            Rolf B
            1. 0
              dedlfix
              1. 0
                Rolf B
                1. 1
                  dedlfix
                2. 0
                  1unitedpower
        2. 0
          1unitedpower
          • javascript
          • typescript
          1. 0
            pl
  2. 0
    ursus contionabundo
    1. 0
      dedlfix
      1. 0
        ursus contionabundo
    2. 0
      pl
      1. 0
        ursus contionabundo
        1. 0
          pl
          1. 0
            ursus contionabundo
            1. 0
              pl
              1. 0

                Ganz unverblümt...

                ursus contionabundo
                • meinung
                1. 0
                  pl
                  1. 0
                    ursus contionabundo
                    1. -2
                      pl
                      1. -1
                        ursus contionabundo
                        1. 0
                          Felix Riesterer
                          1. 0

                            Frage immer noch offen!

                            pl
                            1. 0
                              dedlfix
                              1. 0
                                pl
                                • javascript
                                1. 0
                                  Felix Riesterer
                                  1. 0
                                    pl
                                2. 1
                                  dedlfix
                                  1. 0
                                    pl
                                    1. 0
                                      dedlfix
                                      1. 0
                                        pl
                          2. -1
                            pl
                            1. 0
                              Felix Riesterer
                              1. -1
                                pl
                                • zu diesem forum
                                1. 0
                                  Gunnar Bittersmann
                                  • meinung
                                  1. 1
                                    dedlfix
                                    1. 0
                                      Christian Kruse
                                      1. 0
                                        dedlfix
                                        1. 0
                                          Tabellenkalk
                                          1. 0
                                            Gunnar Bittersmann
                                            • logik
                                        2. 0
                                          Gunnar Bittersmann
                                          • logik
                                          1. 0
                                            dedlfix
                                            • meinung
                                            1. 0
                                              MudGuard
                                            2. 0
                                              Gunnar Bittersmann
                                      2. 1
                                        JürgenB
                                        1. 0
                                          Felix Riesterer
                                          1. 0
                                            Gunnar Bittersmann
                                    2. 0
                                      Gunnar Bittersmann
                                      1. 0
                                        Tabellenkalk
                                        1. 0
                                          Gunnar Bittersmann
                                          1. 0
                                            Rolf B
                                    3. 0
                                      Orlok
                                      • mathematik
                                  2. 0
                                    Gunnar Bittersmann
                                    • musik
                            2. 0
                              Gunnar Bittersmann
                              • meinung
                              • zu diesem forum
                            3. 0
                              ursus contionabundo
                              1. 0

                                (Ergänzung)

                                ursus contionabundo
                                1. 0
                                  Rolf B
                                  1. 0
                                    ursus contionabundo
                                2. 0
                                  Rolf B
                                  • meinung
                                  • performance
                                  1. 0
                                    ursus contionabundo
                                    1. 0
                                      Rolf B
                                      • humor
                                      • meinung