Hallo
ich habe für ein universitäres Projekt eine riesige Datenmenge (Textdateien von rund 10GB) die ich filtern muss. Es geht darum, dass sich in der Datei ein Menge an Stichwörtern befindet, die ich aussortieren möchte.
Mir würden zwei Methoden einfallen:
1#
Mit einem Scanner (input per pipe) Wort für Wort mit einer Art Blacklist vergleichen und ausgeben/speichern/etc
2#
Einlesen mit Regex - replaceAll und wieder einer Blacklist
Doch welche Methode wäre bei einer großen Datenmenge schneller? Ich habe bereits einen Filter per Regex/replaceAll programmiert, doch dieser benötigt ~50 Minuten für 300 MB (bei einem Intel QuadCore 2,4Ghz ohne GUI)
Arbeitsspeicher wäre genug vorhanden (8GB). Würden sich noch andere Methoden anbieten? Wie könnte man noch weiter optimieren.
mfg
chris
ich habe für ein universitäres Projekt eine riesige Datenmenge (Textdateien von rund 10GB) die ich filtern muss. Es geht darum, dass sich in der Datei ein Menge an Stichwörtern befindet, die ich aussortieren möchte.
Mir würden zwei Methoden einfallen:
1#
Mit einem Scanner (input per pipe) Wort für Wort mit einer Art Blacklist vergleichen und ausgeben/speichern/etc
2#
Einlesen mit Regex - replaceAll und wieder einer Blacklist
Doch welche Methode wäre bei einer großen Datenmenge schneller? Ich habe bereits einen Filter per Regex/replaceAll programmiert, doch dieser benötigt ~50 Minuten für 300 MB (bei einem Intel QuadCore 2,4Ghz ohne GUI)
Arbeitsspeicher wäre genug vorhanden (8GB). Würden sich noch andere Methoden anbieten? Wie könnte man noch weiter optimieren.
mfg
chris