Ankündigung

Einklappen
Keine Ankündigung bisher.

Rekursive Iteration durch Verzeichnisse : Stichwort Performance

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rekursive Iteration durch Verzeichnisse : Stichwort Performance

    Ich suche Anregungen mit eiuner hohen Performance auf einem vorgegebenen System durch c.a. 1 Million Verzeichnisverzweigungen rekursiv zu iteriren. Die Standartfunktionen nutzen mir dabei wenig. Ich hab schon ein paar Tests gemacht, die aber alle nicht zufriedenstellend waren. Zeit für 3000 Verzeichnisse schwanken von 5 Sekunden bis 1 Min.
    bitcoin.de <- Meine Freelancerwährung


  • #2
    Was wäre denn zufriedenstellend? So viele I/O-Zugriffe sind nun mal sehr zeitintensiv. Vermeidung ist die beste Performancesteigerung.

    Kommentar


    • #3
      https://www.php.de/forum/webentwickl...rf-hier-posten

      Ich weis nicht wo die derzeitige RAM Grenze liegt, aber bei Deiner Hardware ist sicher noch Luft nach oben.

      Kommentar


      • #4
        Das mit der Vermeidung ist leider nicht auf meinen Mist gewachsen. Ich bin nur der Jenige, der das ausbaden darf.
        Eine Überlegung war schon in Richtung Virtuelle Festplatte auf dem Ram. Das ganze sollte aber unter Mac funktionieren.
        Wenn der Export durch ist, ist alles erledigt. Die Verzeichnisabfrage ist nur eines viele Probleme. Ich werd versuchen in der Firma paar Innovationen anzustoßen, aber das ist Zukunft.

        Ursache der Ganzen Problematik ist, das die Logs in einer Verzeichnishierachie organisiert wurde die auf dem Datum basiert. Ordner sind dann z.b. so sturkturiert:

        Jaht - Monat - Tag - Stunde - Minute - Sekunde
        08/11/08/15/20/45 danach kommen noch paar Dateien , die in der Sekunde gespeichert wurden. Alles XML mit mehreren kb.

        bitcoin.de <- Meine Freelancerwährung

        Kommentar


        • #5
          Datenbankoperationen sind doch deutlich performanter als Verzeichnisoperationen.

          Gibt es keine Möglichkeit, pro Verzeichnis beim Erstellen einen Datensatz anzulegen, aus dem sich jederzeit der Name bzw. Ort des Verzeichnisses stabil berechnen lässt und dann bei deinen Operationen über die DB zu gehen statt über die Verzeichnishierarchie?

          Kommentar


          • #6
            Nachdem es ja eine einmalige Sache zu sein scheint, warum nicht einfach das Script mal übers Wochenende laufen lassen? Ist doch "egal", ob das 30 Minuten oder 30 Stunden dauert.

            Kommentar


            • #7
              Hab zum Thema noch etwas recherchiert. Ich könnte das Problem Hardwareseitig vermutlich besser lösen. Meine Überlegungen gehen in Richtung temporär angeschlossene SSD oder gar RamDisk. RamDisk wäre natürlich interessanter zum experimentieren, da es nur Software ist. Das andere müsste angeschafft werden.

              Kennt jemand Software die RAMdisk ermöglichst? Also eine Festplatte die auf dem Arbeitsspeicher beruht für Mac OS X? Meine Spontane Suche hatte mir bisher nur kostenpflichtige Windowsprodukte ausgeworfen.
              bitcoin.de <- Meine Freelancerwährung

              Kommentar


              • #8
                Die Sache ist, dass du zum Kopieren der Verzeichnisse auf die SSD oder RAM-Disk mindestens so lange brauchst, wie das PHP-Script zum Einlesen brauchen würde. Somit sehe ich da keinen Vorteil.

                Kommentar


                • #9
                  Das ist die Frage ob das tatsächlich so wäre. Ich hab aus eigener Erfahrung festgestellt, das manche Vorgänge auf dem Dateisystem anders behandelt werden. Immerhin hab ich schon erste Optimierverfahren entdeckt. z.B. eine andere Abfrage-Funktion der Verzeichnisse ohne durch den Dateibaum zu lderieren. Ich spar im Moment ca. 8 mal so viel Zeit.
                  bitcoin.de <- Meine Freelancerwährung

                  Kommentar


                  • #10
                    Aber was spricht jetzt dagegen es einfach länger laufen zu lassen? Die Arbeit, die du jetzt machst, kostet doch auch Zeit. Deine Arbeitszeit ist jedoch wesentlich teurer als die Arbeitszeit des Computers.

                    Kommentar


                    • #11
                      MOD: Verschoben von PHP-Fortgeschritten
                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Zitat von hellbringer Beitrag anzeigen
                        Die Sache ist, dass du zum Kopieren der Verzeichnisse auf die SSD oder RAM-Disk mindestens so lange brauchst, wie das PHP-Script zum Einlesen brauchen würde. Somit sehe ich da keinen Vorteil.
                        Stimmt, ich ging von mehrmaligen auslesen des verzeichnissbaumes aus.
                        Ein Speichern der Informationen des Verzeisnissbaum hielt ich deswegen für nciht zielführend, weil ich von häufigen Änderungen auisging.


                        Kennt jemand Software die RAMdisk ermöglichst? Also eine Festplatte die auf dem Arbeitsspeicher beruht für Mac OS X? Meine Spontane Suche hatte mir bisher nur kostenpflichtige Windowsprodukte ausgeworfen.
                        on linux ?
                        https://wiki.ubuntuusers.de/RAM-Disk_erstellen/

                        hab ich noch nach macos an google geschickt kommt sowas.
                        http://osxdaily.com/2007/03/23/creat...k-in-mac-os-x/

                        Kommentar

                        Lädt...
                        X