TS: Arrays, Vergleich statischer und dynamischer Datenhaltung

Beitrag lesen

Hello,

Die vermeintlichen Optimierungen haben aber bisher nur sehr wenig Vorteil gebracht.

Dann optimierst du möglicherweise an der falschen Stelle. Es gibt eine Faustregel die bessagt, dass ein Programm geschätzte 90% der Laufzeit in 10% des Codes verbringt. Es hilft also in der Regel recht wenig auf Verdacht zu optimieren, weil man dann mit hoher Wahrscheinlichkeit nur sehr kleine Potenziale ausschöpfen kann. Es ist viel effektiver auf Sicht zu fahren, und erstmal die Engpässe zu ermitteln und sich eine Übersicht der Lage zu verschaffen. Dafür gibt es extra Werkzeuge. xdebug hat bspw. auch einen Profiler integriert, damit kann man eine detaillierte Aufzeichnung des Laufzeitverhaltens erstellen. Betrachten und auswerten kann man die Aufzeichnungen dann mit KCachegrind. Wenn du dann den Engpass gefunden hast, dann weißt du auch, wo hohes Optimierungspotenzial liegt und kannst dann gezielt optimieren.

Vielen Dank für deine Unterstützung. Die verantwortliche Stelle habe ich schon gefunden und dort auch eingegriffen.

Es liegt hauptsächlich am Schreibzugriff - "copy-on-write" in den PHP-Arrays. Danke für die Erinnerungsstütze bezüglich der Bezeichnung.

Es scheint mir hauptsächlich an den Schreiboperationen zu liegen. Das "write on access" (hab die Bezeichnung leider vergessen) scheint da besonders zu bremsen.

Meinst du copy-on-write? Das ist eine Perforamnce-Optimierung, sie macht Code in der eher Regel schneller als langsamer.

Das stimmt, solange man eben nicht schreibend (ändernd) zugreift. In meinem Versuchsbeispiel sieht man das auch ganz deutlich. Der Aufbau der Grafikseite aus denselben z. Zt. ca. 60.000 Datensätzen geht in Nullkommanix. Die Berechnung der Min/Max-Werte und deren textliche Ausgabe dauert aber nach der

  • alten Methode (Ausführungszeit: 5.1807448863983sec)
  • nach der geänderten Methode(Ausführungszeit: 4.7937939167023sec)

Die alte Methode hat den Vorteil, dass die Datei nicht sortiert sein muss. Die neue arbeitet mit klassischem Gruppenwechsel. Beide laden zunächst die Datei mit file(). Das funktioniert überraschenderweise allerdings auch in Nullkommanix. Die grafischen Anzeigen nutzten auch file().

Wenn ich mehr getestet habe, schiebe ich die Codes noch hinterher.

Gespannt bin ich auf die Stringvariante, die dem klassischen statischen Array dann am nächsten kommt.

Und noch eine Bemerkung zum Schluss: ich wollte hier gar nichts "optimieren", bin nur gebeten worden, einen Unterschied zu ermitteln zwischen PHP-Arrays und klassischen statischen Arrays. Da es die in PHP eigentlich gar nicht offen zugänglich gibt für den Anwendungsprogrammierer, muss ich mir eben eine Krücke ausdenken.

Das Problem wird sein, dass ein String (Als classic-Array-Ersatz) aus 60.000 Datensätzen auch nicht in ein Datensegment passt und PHP da im Hintergrund ohnehin schon wieder basteln muss.

Alldings wird meine Ausgabevarable mit $out .= ... ja auch in allen Fällen in nahezu Nullzeit gefüllt und wieder gelesen Richtung Std-Out.

Glück Auf
Tom vom Berg

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
0 220

Checkboxen im PHP mit SQL

PHP-Neuling
  • html
  • php
  • sql
  1. 1
    TS
    1. 0
      PHP-Neuling
      1. 0
        Auge
        1. 0
          PHP-Neuling
          1. 0
            Felix Riesterer
            1. 0
              PHP-Neuling
              1. 0
                Der Martin
                1. 0
                  PHP-Neuling
                  1. 0
                    PHP-Neuling
                    1. 0
                      Gunnar Bittersmann
                      • html
                      • php
                    2. 1
                      dedlfix
                    3. 1
                      TS
                      1. 0
                        PHP-Neuling
                        1. 0
                          Tabellenkalk
                    4. 0
                      Felix Riesterer
                      1. 0
                        Matthias Apsel
                        1. 0
                          Felix Riesterer
                          1. 0
                            Matthias Apsel
                            1. 2
                              Felix Riesterer
                        2. 0
                          Gunnar Bittersmann
            2. 1
              TS
              1. 1
                Gunnar Bittersmann
                1. 0
                  TS
                2. 0
                  robertroth
                  1. 0
                    Der Martin
                    1. 0
                      TS
                      1. 0
                        Der Martin
                      2. 0
                        Tabellenkalk
                        1. 0
                          robertroth
                  2. 0
                    Gunnar Bittersmann
                    1. 1
                      Raketengrundradar
                    2. 0
                      TS
                      1. -1
                        Gunnar Bittersmann
                        1. 0
                          TS
                          1. 0
                            Matthias Apsel
                            1. 0
                              TS
                              1. 1
                                Auge
                            2. 0
                              Raketentheoretiker
                              1. 0
                                Gunnar Bittersmann
                                • html
                                1. 0
                                  Rolf B
                                  1. 0
                                    TS
                                    1. 0
                                      Gunnar Bittersmann
                                  2. 0
                                    Raketentheoretiker
                                    1. 0

                                      Ein paar Korrektueren

                                      Raketeningrid
                                      1. 0
                                        Gunnar Bittersmann
                                        1. 0
                                          Christian Kruse
                                      2. 0

                                        Korrektur für function setChecked()

                                        RaketenQuadratIngrid
                                    2. 1
                                      Rolf B
                                      1. 0
                                        TS
                                        • software
                                        1. 0
                                          Raketentheoretiker
                                          • javascript
                                  3. 0
                                    Gunnar Bittersmann
                              2. 1
                                Julius
                3. 1
                  Gunnar Bittersmann
              2. 0
                dedlfix
                1. 2
                  MudGuard
            3. 1

              SQL - semantischer Unterschied zwischen 0 und null

              Camping_RIDER
    2. 1
      Rolf B
      1. 0
        Mitleser
  2. 0
    Felix Riesterer
    1. 0
      PHP-Neuling
      1. 0
        Robert B.
  3. 0

    Checkboxen im PHP mit SQL (Sicherheit)

    Raketenhacknix
    1. 0
      Raktentypokorrekturautomat
    2. 0
      PHP-Neuling
      1. 5
        Raketenede
        1. 0
          PHP-Neuling
          1. 4
            dedlfix
            1. 0
              PHP-Neuling
          2. 3
            MudGuard
  4. 0
    PHP-Neuling
    1. 0
      Rolf B
      1. 0
        PHP-Neuling
        1. 1
          Rolf B
          1. 0
            PHP-Neuling
            1. 0
              Rolf B
              1. 0
                Felix Riesterer
                1. 0
                  Der Martin
                  1. 0
                    dedlfix
              2. 0
                PHP-Neuling
                1. 0
                  Felix Riesterer
                  1. 0
                    PHP-Neuling
            2. 0
              Felix Riesterer
              1. 0
                PHP-Neuling
                1. 0
                  PHP-Neuling
                  1. 0
                    Felix Riesterer
                    1. 0
                      PHP-Neuling
                      1. 0
                        Felix Riesterer
                      2. 0
                        Der Martin
                      3. 0
                        dedlfix
  5. 0
    Felix Riesterer
    1. 0
      PHP-Neuling
      1. 0
        Der Martin
        • css
        • html
        1. 0
          PHP-Neuling
          1. 0
            Der Martin
            1. 0
              PHP-Neuling
            2. 0
              Gunnar Bittersmann
              • design
              1. 0
                Der Martin
        2. 0
          Gunnar Bittersmann
          1. 0
            Der Martin
            1. 0
              PHP-Neuling
              1. 0
                TS
                • css
                • datenmodell
                • html
                1. 0
                  PHP-Neuling
              2. 0
                Gunnar Bittersmann
                • design
                • ux
                1. 0
                  PHP-Neuling
            2. 0
              TS
              • css
              • geschichte
              • html
              1. 0
                Gunnar Bittersmann
                • geschichte
                1. 0
                  Der Martin
                  1. 0
                    TS
                2. 0
                  TS
                  1. 0
                    Rolf B
                    1. 0
                      TS
                      • geschichte
                      • hardware
                      1. 0
                        Gunnar Bittersmann
                      2. 0
                        Der Martin
                        1. 0
                          TS
                  2. 0
                    Gunnar Bittersmann
  6. 0
    PHP-Neuling
    1. 0
      dedlfix
      1. 0
        PHP-Neuling
        1. 0
          dedlfix
          1. 0
            PHP-Neuling
            1. 0
              PHP-Neuling
              1. 0
                dedlfix
                1. 0
                  PHP-Neuling
                  1. 0
                    Rolf B
                    1. 0
                      PHP-Neuling
                      1. 0
                        PHP-Neuling
                        1. 0

                          Warnung vor der Schreibfaulheit

                          TS
                          • philosophie
                          1. 0
                            PHP-Neuling
                          2. 1
                            Der Martin
                            • programmierstil
                            1. 1
                              dedlfix
                              1. 1
                                Der Martin
                          3. 3
                            dedlfix
                            1. 0
                              MudGuard
                    2. 0
                      Der Martin
                      • php
                      • programmiertechnik
                      1. 0
                        TS
                        1. 0
                          Der Martin
                          1. 0
                            TS
                            • php
                            • programmiertechnik
                            • sicherheit
                            1. 0

                              Teilthread abgetrennt

                              TS
                              • zur info
                    3. 3
                      Waltraut von der Vogelweide
                  2. 0
                    TS
  7. 0

    rtrim UPDATE Schleife

    PHP-Neuling
    1. 0
      dedlfix
      1. 0
        PHP-Neuling
        1. 0
          dedlfix
          1. 0
            Rolf B
        2. 0
          Rolf B
          1. 0
            PHP-Neuling
            1. 0
              Rolf B
              1. 0
                PHP-Neuling
                1. 0
                  Rolf B
                2. 0
                  PHP-Neuling
                  1. 0
                    Felix Riesterer
                    1. 0
                      PHP-Neuling
                  2. 0
                    dedlfix
                    1. 0
                      PHP-Neuling
                      1. 0
                        dedlfix
                        1. 0
                          PHP-Neuling
                          1. 1
                            Rolf B
                            1. 0
                              PHP-Neuling
                              1. 1
                                Julius
                                1. 0
                                  Rolf B
                                  1. 0
                                    Tabellenkalk
                                    1. 0
                                      Tabellenkalk
                                  2. 0
                                    PHP-Neuling
                                    1. 0

                                      Gewöhn Dich dran

                                      Raktenphilosoph
                                      • sonstiges
                                      1. 0
                                        PHP-Neuling
                                    2. 0
                                      Rolf B
            2. 0
              Gunnar Bittersmann
              • php
        3. 0

          Schleife, foreach()

          TS
          • php
          1. 0
            Felix Riesterer
            1. 0
              Gunnar Bittersmann
              1. 0
                Felix Riesterer
                1. 0
                  Der Martin
                  1. 0
                    Felix Riesterer
                  2. 0
                    TS
                    • humor
                    1. 0
                      Der Martin
                      1. 0
                        TS
                        • humor
                        • mathematik
                        1. 0
                          Gunnar Bittersmann
                          • programmiertechnik
                          1. 0
                            TS
                            • mathematik
                            • programmiertechnik
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                TS
                        2. 0
                          Der Martin
                          1. 0
                            Gunnar Bittersmann
                            • menschelei
                            1. 0
                              Der Martin
                              1. 0
                                Gunnar Bittersmann
                          2. 0

                            Corona-Mode

                            Raketenkröner
                            • humor
                            1. 0
                              Der Martin
                              1. 0
                                Raketenkröner
                                1. 0
                                  Der Martin
                                  1. 0
                                    Tabellenkalk
                                    1. 0
                                      Raketenmedizinalprophet
                                  2. 0
                                    Raketenhumordezimierer
                                    1. 0
                                      Der Martin
                                      1. 0
                                        Raketenhumordezimierer
                                        1. 0
                                          TS
                                      2. 0
                                        Gunnar Bittersmann
                                        • politik
                                        1. 0
                                          TS
                                        2. 0
                                          Der Martin
                                          1. 0
                                            TS
                                            • humor
                                            • politik
                                        3. 0
                                          Gunnar Bittersmann
                        3. 1
                          1unitedpower
                  3. 0
                    Gunnar Bittersmann
                    1. 0
                      Der Martin
              2. 1

                Arrays

                TS
                • array
                • php
                1. 0
                  Mitleser
                  1. 0
                    TS
                    1. 0
                      Mitleser
                      1. 1
                        TS
                        1. 0
                          Mitleser
                          1. 0
                            TS
                            1. 0

                              Arrays, Vergleich statischer und dynamischer Datenhaltung

                              TS
                              • array
                              • php
                              • zur info
                              1. 1
                                1unitedpower
                                1. 0
                                  TS
                                  1. 0
                                    Der Martin
                                    1. 0
                                      TS
                                      1. 0
                                        Mitleser
                          2. 0
                            Rolf B
                            1. 0
                              TS
  8. 0
    Gunnar Bittersmann
    • moderation