Camping_RIDER: ftx_cleartel_test

Beitrag lesen

Aloha ;)

Kann das mal jemand prüfen? Dem Ergebnis nach ist der Test mit foreach und einem Komplettdurchlauf ca. 3 bis 4 mal schneller als 3 Zugriffe auf das Array mit 4300 Elementen. Ach wenn ich den Wertebereich um den Faktor 100 erhöht (und die "Vorwahl" verlängert) habe war das Ergebnis ähnlich.

Wenn ich das auf meinem billigen Webspace laufen lass ergibt sich (grob) das gleiche Bild.

ForEach-Zugriff: 1199.8353004456ms
gefunden: dummy: 015299
1000000
Array-Zugriff  : 2682.8827857971ms
gefunden: dummy: 015299
1000000

Das legt nahe, dass Arrays von PHP noch einmal deutlich komplexer behandelt werden als ich bisher angenommen hatte - inklusive entsprechender nativer Optimierungen.

Es scheint, dass der Overhead eines einzelnen Arrayzugriffs per Schlüssel sehr viel größer ist als der Gesamtaufwand eines sequentiellen Durchlaufens.

Das legt nahe, dass auch Gunnars Datenstruktur u.U. vergleichsweise deutlich langsamer laufen könnte als angenommen, da hier auch einige Arrayzugriffe anhand eines Schlüssels erfolgen (der dann zwar eine Zahl ist, aber, naja...).

In anderen Sprachen kann das durchaus anders aussehen - z.B. in Javascript, wo Arrays schlank sind und keine assoziativen Arrays möglich sind, da dürfte ein Zugriff über eine Baumstruktur deutlich schneller sein als ein Durchlaufen des Arrays. Noch krassere Erleichterungen durch die Baumstruktur / binäre Suche erwarte ich bei Sprachen wie Java oder C/C++, die noch weniger abstrahieren und damit transparente, abschätzbare Speicherverwaltung betreiben.

Mein Fazit: Optimierungsversuche über Datenstrukturen (egal ob Baumstruktur oder binäre Suche) sind in PHP aufgrund des hohen Abstraktionsniveaus Makulatur.

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
0 108

input type="tel"

Jule
  • html
  1. 1
    MrMurphy1
    1. -1
      Jule
      1. 0
        MrMurphy1
      2. 0
        Gunnar Bittersmann
        • ux
        1. 0
          Jörg Reinholz
          1. 0
            Jule
            1. 0
              Christian Kruse
            2. 3
              MrMurphy1
          2. 3

            Offtopic / Codeschnipsel-Sammlung

            Camping_RIDER
        2. -1
          Jule
          1. 1
            Jörg Reinholz
            1. -1
              Jule
              1. 1
                Christian Kruse
              2. 0
                Jörg Reinholz
                1. 0
                  Jule
                  1. 3
                    Jörg Reinholz
                2. 0

                  ftx_cleartel_test

                  Jule
                  • php
                  1. 0
                    Jörg Reinholz
                    1. 0
                      Jule
                      1. 0
                        Jörg Reinholz
                        1. -1
                          Jule
                          1. 1
                            Camping_RIDER
                    2. 0
                      Gunnar Bittersmann
                      • sonstiges
                      1. 0
                        Jule
                        1. 0
                          Camping_RIDER
                          1. 0
                            Der Martin
                          2. 2
                            MudGuard
                          3. 2
                            Gunnar Bittersmann
                            • programmiertechnik
                            1. 1
                              Jörg Reinholz
                              1. 0

                                Neues Bastelzeug: Vorwahlen zu Array (json, php)

                                Jörg Reinholz
                                1. 0

                                  Bugfix: Vorwahlen zu Array (json, php)

                                  Jörg Reinholz
                            2. 0
                              Jörg Reinholz
                            3. 0
                              dedlfix
                              1. 0
                                Camping_RIDER
                                1. 0
                                  dedlfix
                                  1. 0
                                    Camping_RIDER
                                    1. 0
                                      dedlfix
                                      1. 0
                                        Camping_RIDER
                                        1. 0
                                          dedlfix
                                          1. 0
                                            Camping_RIDER
                                          2. 0
                                            Jörg Reinholz
                                            1. 0
                                              Camping_RIDER
                                              1. 0
                                                Jörg Reinholz
                                                1. 0
                                                  Camping_RIDER
                                                  1. 1
                                                    Jörg Reinholz
                                                    1. 0
                                                      Jörg Reinholz
                                                      1. 2

                                                        PHP7 gegen PHP5 - Messung

                                                        Jörg Reinholz
                                                        1. 0

                                                          HHVM gegen PHP7 gegen PHP5 - Messung

                                                          Jörg Reinholz
                                              2. 0
                                                Christian Kruse
                                                1. 0
                                                  Camping_RIDER
                                                  1. 0
                                                    Christian Kruse
                                                    1. 0
                                                      Camping_RIDER
                                                      1. 0
                                                        Der Martin
                                                        1. 0
                                                          Camping_RIDER
                                                  2. 0
                                                    Christian Kruse
                                                    1. 0
                                                      Camping_RIDER
                                                      1. 1
                                                        Christian Kruse
                              2. 0
                                Jörg Reinholz
                                1. 0
                                  MudGuard
                                  1. 0
                                    Jörg Reinholz
                                    1. 0
                                      woodfighter
                      2. 2
                        Christian Kruse
                  2. 0
                    Camping_RIDER
                    1. 0
                      Gunnar Bittersmann
                      • sonstiges
                      1. 0
                        Camping_RIDER
                        1. 0
                          MudGuard
                        2. 0
                          Gunnar Bittersmann
                          1. 0
                            Jule
                            1. 1
                              Gunnar Bittersmann
                              1. 0
                                Jule
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Jule
                                    1. 0
                                      Gunnar Bittersmann
                          2. 0
                            Camping_RIDER
                        3. 0
                          Jule
                3. 0
                  Gunnar Bittersmann
              3. 0
                Der Martin
                1. 0
                  Jule
                  1. 0
                    Der Martin
                    1. 0
                      Camping_RIDER
                    2. 0
                      Gunnar Bittersmann
                      • sonstiges
  2. 0
    Gunnar Bittersmann
    1. 0
      Jule
    2. 0
      Gunnar Bittersmann
      1. 0
        Jule
        1. 1
          Der Martin
          1. 1
            Gunnar Bittersmann
            • sonstiges
            • ux
        2. 0
          Jörg Reinholz
  3. 2
    Christian Kruse
  4. 0

    Telefonnummer-Formatierer

    Jörg Reinholz
    1. 0
      Jörg Reinholz
      1. 0
        woodfighter
        1. 0
          Jörg Reinholz
        2. 0
          Auge
          1. 0
            dedlfix
            1. 0
              Auge
              1. 0
                MudGuard
                1. 0
                  Auge
                2. 0
                  dedlfix
      2. 0
        MudGuard
        1. 0
          Jörg Reinholz
          1. 0
            MudGuard
            1. 0
              Jörg Reinholz
              1. 0
                Auge
                • html
                • links
                1. 0
                  Jörg Reinholz
                  1. 0

                    Verschachtelte Datenstruktur vs Binäre Suche

                    Camping_RIDER
        2. 0
          MudGuard