Dark Ranger
Erfahrenes Mitglied
Performance Steigerungen
Hi
Ich habe mal eine Frage, ich habe viele Textdateien in verschiedenen Ordnern. Jede Textdatei ist max. 5 MB groß hat aber bestimmt so 54.000 Zeilen oder mehr.
Nun stellt sich mir die Frage, wie ich diese Dateien am besten Zeile für Zeile durchgehe, aber auf sowas wie zeile.endsWith() nicht verzichten möchte.
Was gibt es denn da so für Tricks?
Habe auch Google schon befragt aber ncihts wirklich schlüssiges bekommen, nur das ich einen StringBuffer benutzen könnte, aber da habe ich sowas wie dieses .endsWith() nicht.
Edit:
Habe jetzt schon einiges aus dem Inet angewendet und es dauert jetzt auch nicht mehr solange wie vorher. Aber ich glaube hier könnte ich noch einiges verbessern:
Meint ihr, ich könnte mit der Hilfe von Threads das ganze parallel laufen lassen?
Diese DiagrammPrinter Klasse erzeugt ein Bild und erstellt so ein Diagramm, welches ich später dann in eine HTML Seite einbinden will! Und diese Bilder können eigentlich alle parallel erstellt werden, weil keins vom anderen abhängig ist.
Weiß vielleicht einer eine Möglichkeit?
Hi
Ich habe mal eine Frage, ich habe viele Textdateien in verschiedenen Ordnern. Jede Textdatei ist max. 5 MB groß hat aber bestimmt so 54.000 Zeilen oder mehr.
Nun stellt sich mir die Frage, wie ich diese Dateien am besten Zeile für Zeile durchgehe, aber auf sowas wie zeile.endsWith() nicht verzichten möchte.
Was gibt es denn da so für Tricks?
Habe auch Google schon befragt aber ncihts wirklich schlüssiges bekommen, nur das ich einen StringBuffer benutzen könnte, aber da habe ich sowas wie dieses .endsWith() nicht.
Edit:
Habe jetzt schon einiges aus dem Inet angewendet und es dauert jetzt auch nicht mehr solange wie vorher. Aber ich glaube hier könnte ich noch einiges verbessern:
Code:
public Map <String,Map<String,GraphInfo>> graphmap = new TreeMap<String,Map<String,GraphInfo>>();
Code:
DiagrammPrinter[] test = new DiagrammPrinter[graphmap.size()];
ArrayList[] y_axis = new ArrayList[graphmap.size()];
for(int i=0;i<graphmap.size();i++) {
test[i] = new DiagrammPrinter();
y_axis[i] = new ArrayList();
}
Iterator graphit = graphmap.keySet().iterator();
int counter=0;
while(graphit.hasNext()) {
Object obj_graph = graphit.next();
for(int h=0;h<=23;h++) {
for(int m=0;m<=55;m+=5) {
if(graphmap.get(obj_graph).containsKey(h+to2(m))) {
int cnt = graphmap.get(obj_graph).get(h+to2(m)).getCount();
Object tmp = test[counter].createPoint(cnt);
y_axis[counter].add(tmp);
}
else {
Object tmp = test[counter].createPoint(0);
y_axis[counter].add(tmp);
}
}
}
test[counter].setPoints(y_axis[counter]);
test[counter].print(new String(obj_graph.toString()));
counter++;
}
Meint ihr, ich könnte mit der Hilfe von Threads das ganze parallel laufen lassen?
Diese DiagrammPrinter Klasse erzeugt ein Bild und erstellt so ein Diagramm, welches ich später dann in eine HTML Seite einbinden will! Und diese Bilder können eigentlich alle parallel erstellt werden, weil keins vom anderen abhängig ist.
Weiß vielleicht einer eine Möglichkeit?
Zuletzt bearbeitet: