Ich habe ein Applet, das eine Website nach Updates prüft, indem es den HTML-Code der Website in ein String-Objekt lädt und dann nach einem Muster sucht, aber weil die Website viel Platz in Anspruch nimmt, merke ich das schon Mit jedem Scan wächst die Speicherauslastung der App. Ich nehme an, dass das ist, weil, anstatt den Inhalt der alten Schnur neu zu schreiben, es ein neues schafft und tut, weiß ich nicht was mit dem alten, aber nicht lösche es.Wie überschreiben Sie einen String in Java?
Hier ist der Code, den ich
schriebimport java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Scanner;
/**
* Created by zaers on 15-Apr-16.
*/
public class PageSearch {
public static void main(String[] args){
while(true) {
try {
Thread.sleep(60000);
} catch (InterruptedException e) {
System.exit(1); //OS screwed our program
}
try {
String out = new Scanner(new URL("http://blog.dota2.com/").openStream(), "UTF-8").useDelimiter("\\A").next();
if(out.contains("6.87")){
java.awt.Desktop.getDesktop().browse(new URI("http://www.youtube.com/watch?v=-kcOpyM9cBg&t=7m21s"));
break;
}
else continue;
} catch (IOException e) {
System.exit(2); //Blog is kill
} catch (URISyntaxException e) {
System.exit(3); //YouTube is kill
}
}
}
}
ich das, weil bei der ersten Ausführung bemerkt die App 8.5MB nimmt, aber es ist derzeit bei 27,8 und wächst mit jeder Prüfung.
technisch Heap Raum ohne GC wachsen kann, bis es in Eden Generation genügend freier Speicherplatz vorhanden ist – AdamSkywalker
Warum sind Sie in der 'while (true)' Schleife ein neues 'Scanner' erstellen? – TheLostMind
Schließen Sie nicht Ihre Streams o_O Nun, Sie gehen. Schließen Sie Ihre Streams, wenn Sie damit fertig sind! – Tschallacka