Rolf B: Quadrate – diesmal Zahlen, keine Figuren – Lösung der Zusatzaufgabe

Beitrag lesen

Hallo 1unitedpower,

es ist schon faszinierend, dass toString die ideale Ausgangsbasis für eine Quersumme ist. Die toString-Methode von BigInt dürfte hoch optimiert sein und deutlich effizienter als Divisionen durch 10 oder 1000000 (für meine Block-Quersummen) auf JS-Level.

Wenn ich toString einsetze, kommt mein JS-Script auch auf 0,6µs pro Zahl.

Und mit dieser Methode komme ich unter 0,4µs:

function quersumme(n) {
   let digits = n.toString(),
       i = digits.length,
       q = 0;
   while (i > 0) q += digits.charCodeAt(--n)-48;
   return q;
}

Interessant ist auch, dass inlining von Funktionen kaum etwas bringt. Entweder macht der JIT-Compiler der JS-Engine das von allein, oder Funktionsaufrufe in JavaScript sind rasend schnell.

Und was mich nun komplett schockiert hat, ist, dass Firefox 80 das gleiche Script in 60% der Zeit absolviert, die Chrome 85 braucht. WTF? Ich dachte, V8 wäre der Maßstab in JS Performance - aber offenbar ist dieser Code Energiefutter für den Spinnenaffen.

Rolf

--
sumpsi - posui - obstruxi
0 39

Quadrate – diesmal Zahlen, keine Figuren

Matthias Apsel
  • mathematik
  1. 0
    Tabellenkalk
    1. 0
      Matthias
  2. 0
    Der Martin
  3. 0
    Henry
    1. 0
      MudGuard
      1. 0
        Rolf B
        1. 0
          Gunnar Bittersmann
          1. 0
            MudGuard
            1. 0
              Rolf B
          2. 0
            Gunnar Bittersmann
  4. 1

    Quadrate – diesmal Zahlen, keine Figuren – Lösung für den Einstieg

    Matthias Apsel
    1. 0
      Rolf B
      1. 0

        Quadrate – diesmal Zahlen, keine Figuren – Zusatzaufgabe

        Gunnar Bittersmann
        1. 0
          Rolf B
          1. 0
            Gunnar Bittersmann
            1. 0
              Rolf B
              1. 0
                Gunnar Bittersmann
                1. 0
                  Rolf B
                  1. 0
                    Gunnar Bittersmann
                    • javascript
                    • mathematik
                    1. 0
                      Rolf B
                    2. 0
                      Rolf B
        2. 0

          Quadrate – diesmal Zahlen, keine Figuren – Lösung der Zusatzaufgabe

          Gunnar Bittersmann
          1. 0
            Rolf B
            1. 0
              Matthias Apsel
              1. 2
                Rolf B
                1. 0
                  Matthias Apsel
                2. 1
                  1unitedpower
                  1. 0
                    Der Martin
                    • mathematik
                    • programmiertechnik
                    1. 0
                      1unitedpower
                      1. 0
                        Gunnar Bittersmann
                        • javascript
                        1. 0
                          1unitedpower
                          1. 0
                            Gunnar Bittersmann
                      2. 0
                        Der Martin
                  2. 0
                    Gunnar Bittersmann
                    • javascript
                    1. 0
                      1unitedpower
                  3. 0
                    Rolf B
          2. 0
            Matthias Apsel
  5. 0

    Keine Figuren??

    Der Martin
    • menschelei
    • sprache