Pipes



  • Ich habe eine Tabellendatei, aus der ich alle Kombinationen von Spaltenmöglichkeiten auslesen möchte.

    Ich mach besser ein Beispiel

    Header:    Winkel    Frequenz    Anmerkung    Medium    Resultat
                 30         300          #         Glas       27
    ...
    

    Da mehrere Versuche öfter ausgeführt worden sind, möchte ich nun zB alle Versuchsparameter wissen, die es gab.

    Als Ergebnis also etwas wie

    Header:  Winkel Frequenz Medium
               30      300     Glas
    ...
    

    Hier stehen alle vorgekommenen Möglichkeiten der Spalten, welche ich näher spezifiere, zB hier : (Winkel, Frequenz,Medium)

    Da solche Ergebnisse sehr groß werden können (mehrere Millionen Einträge in der Datei), ist mein bisheriger Ansatz vielleicht eher suboptimal.

    Lege Liste an
    Lese Datei Zeile für Zeile durch:
    für jede Zeile:
        wähle die Spalten aus, welche gewünscht sind
        ist die Kombination schon in der Liste, mache weiter, ansonsten:
            Trage Kombination in Liste ein
    

    Ziel ist es die verschiedenen Versuchbedingungen zu trennen, da viele nicht miteinander vergleichbar sind. Hier lege ich aber eventuell riesige Listen von tupeln im Hauptspeicher ab. Da dieser beschränkt ist, sollte das so wenig wie möglich passieren.

    Wie kann ich nun erreichen, möglichst wenig Speicher zu verbrauchen, aber dennoch halbwegs "schön" an mein Ziel zu kommen=?


  • Mod

    pfeife schrieb:

    Da solche Ergebnisse sehr groß werden können (mehrere Millionen Einträge in der Datei), ist mein bisheriger Ansatz vielleicht eher suboptimal.

    Klingt nach einem Fall von verfrühter Optimierung, wenn du nicht gerade einen 486er als Zielplattform hast. Nutze deine Hardwareresourcen. Wenn's ein paar Milliarden Einträge sind, würde ich anfangen, mir Sorgen zu machen.



  • Oder Du sortierst die Master-Datei über Nacht. Dann kannste so viele Attribute ausblenden, wie Du willst, die Liste bleibt sortiert und das Entfernen von Duplikaten geht supi, weil sie benachbart sind.


Log in to reply