hallo,
ich bin gerade dabei, dass ich massig internet seiten einlese und diese dann parsen muss.
also
verbinde mich hier mal auf eine seite:
das dauerst so rund 300 ms
und bau mir hier einen string zusammen
das dauert rund 1500 ms ???:L
ich habs dann auf StringBuilder umgeschrieben, was eine reduktion auf rund 1000 ms brachte
dann hab ichs mit
versucht, wo ich nochmal auf rund 700 ms herab kam.
also insgesamt brauch ich eine sekunde pro seite. hat irgendjemand eine idee wie man das beschleunigen könnte?
ich muss nähmlich rund 20000 seiten öffnen.
oder liegt es einfach an der natur der sache, das es halt dauert bis eine internet seite geladen ist? würde es helfen wenn ich die last auf 4-5 threads aufteile? hat da jemand schon erfahrugnen gemacht?
ich bin gerade dabei, dass ich massig internet seiten einlese und diese dann parsen muss.
also
verbinde mich hier mal auf eine seite:
Code:
url = new URL("http://"+domain);
connection = url.openConnection();
connection.addRequestProperty("User-Agent", agent);
is = connection.getInputStream();
das dauerst so rund 300 ms
und bau mir hier einen string zusammen
Code:
String page = new StringBuilder();
BufferedReader in = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = in.readLine()) != null)
page = page+line;
das dauert rund 1500 ms ???:L
ich habs dann auf StringBuilder umgeschrieben, was eine reduktion auf rund 1000 ms brachte
dann hab ichs mit
Code:
String page = new Scanner( is ).useDelimiter( "\\Z" ).next();
versucht, wo ich nochmal auf rund 700 ms herab kam.
also insgesamt brauch ich eine sekunde pro seite. hat irgendjemand eine idee wie man das beschleunigen könnte?
ich muss nähmlich rund 20000 seiten öffnen.
oder liegt es einfach an der natur der sache, das es halt dauert bis eine internet seite geladen ist? würde es helfen wenn ich die last auf 4-5 threads aufteile? hat da jemand schon erfahrugnen gemacht?