Rolf B: Bitweiser NOT-Operator enttäuscht meine Erwartung

Beitrag lesen

Hallo Martin,

Eine Negation ist bei vielen CPUs in nur einem einzigen Taktzyklus erledigt. Die Subtraktion braucht mindestens einen Zyklus länger, weil noch ein Operand geholt werden muss

Den Operand hat Gunnar auch, für das AND. Dass seine Version die lesbarste ist, will ich gar nicht bestreiten.

Was beim Assemblieren wirklich stört, ist das Temp-Register, das meine Version braucht, weil ich den Wert von einer Konstanten abziehe.

Aber, was dann wieder unterging, war die XOR Version: value ^ 65535. Die lässt sich in einer Instruktion realisieren, je nach verwendetem Transistorenhaufen sogar ohne Register.

Es gibt eine Menge Wege, unter Ausnutzung der Werterepräsentation Bitoperationen ohne Bitoperatoren durchzuführen.

Zyklen zu zählen ist auf modernen Prozessoren aber zumeist sinnlos. Die Pipelines und Caches haben massiven Einfluss auf den Ablauf. Deswegen produzieren die Intel-Compiler auch massiv schnelleren Code als beispielsweise die Microsoft-Compiler.

Wie gut die Optimizer von V8 oder Spidermonkey sind, weiß man auch nicht. Oder? Jedenfalls ist C# bei mir eher schneller als JavaScript, und C++ noch sehr viel mehr.

Rolf

--
sumpsi - posui - obstruxi
0 60

Bitweiser NOT-Operator enttäuscht meine Erwartung

Der Buchhalter
  • javascript
  1. 2
    Gunnar Bittersmann
    1. 0
      Der Buchhalter
      1. 0
        Gunnar Bittersmann
        1. 0
          Der Buchhalter
          1. 0
            Gunnar Bittersmann
            1. 0
              Der Buchhalter
          2. 0
            Rolf B
            1. 0
              Gunnar Bittersmann
              1. 0
                Rolf B
            2. 0
              Der Buchhalter
              1. 0
                Rolf B
              2. 0
                Christian Kruse
                1. 0

                  Zombies

                  Der Martin
                  • zu diesem forum
                  1. -1
                    Gunnar Bittersmann
        2. 0
          Der Buchhalter
          1. 0
            Robert B.
            1. 0
              Gunnar Bittersmann
              1. 0
                Robert B.
                1. 0
                  Der Martin
                  1. 0
                    Robert B.
                    1. 0
                      Der Martin
                      1. 0
                        Robert B.
                        • mathematik
                        1. 0
                          Rolf B
                          1. 0
                            Robert B.
                          2. 1
                            MudGuard
                            • sprache
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                Tabellenkalk
                              2. 0
                                Gunnar Bittersmann
                                1. 0
                                  Der Martin
                                  1. 0
                                    Auge
                                    • menschelei
                                    • sprache
                                    1. 0
                                      Der Martin
                                    2. 0
                                      Gunnar Bittersmann
                                      1. 0
                                        Gunnar Bittersmann
            2. 0
              Der Buchhalter
            3. 0
              Gunnar Bittersmann
  2. 0
    Rolf B
    1. 0
      Gunnar Bittersmann
      1. 0
        Rolf B
        1. 0
          Der Martin
          1. 0
            Rolf B
        2. 0
          Gunnar Bittersmann
  3. -3
    TS
    • javascript
    • versionsverwaltung
    1. 0
      Rolf B
      1. 0
        JürgenB
        1. 0
          Rolf B
          1. 0
            JürgenB
    2. 0
      Mitleser 2.0
      1. 0
        TS
        • javascript
        • mitarbeit
        • versionsverwaltung
        1. 0
          Mitleser 2.0
          1. 0
            TS
            • mitarbeit
          2. 0
            Rolf B
            1. -2
              TS
              1. 0
                Rolf B
  4. 0
    Samuel fiedler
    1. 0
      Gunnar Bittersmann
  5. 0
    Ich:
  6. 0
    Alexander Hein
    • php
    1. 1
      Rolf B
      1. 1
        TS
        • datentypen
        • php