Javafx'te WebView ile çalışırken bir sorunla karşılaştım. Görev yöneticimdeki bellek kullanımı her şeyin ötesine geçiyor ve bir çökme ile biter.Birçok sayfa yüklerken Javafx WebView'da patlayan bellek kullanımı
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewSample extends Application {
public boolean cycle = false;
public static void main(String[] args) {
launch();
}
@Override public void start(Stage primaryStage) {
WebView webView = new WebView();
WebEngine engine = webView.getEngine();
engine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
@Override
public void changed(ObservableValue<? extends Worker.State> obs, Worker.State old, Worker.State current) {
if(javafx.concurrent.Worker.State.SUCCEEDED == current) {
if(cycle) {
engine.load("http://www.google.com");
} else {
engine.load("http://www.yahoo.com");
}
cycle = !cycle;
}
}
});
engine.load("http://www.google.com");
primaryStage.setScene(new Scene(webView));
primaryStage.show();
}
}
Yani temelde kod sadece iki web sitesi değişerek yükler:
Sorunu yeniden oluşturmak için basit bir kod örneği var! Sorunum, yalnızca bu iki Sayfa ile değil, ana programımdaki tüm farklı URL'leri yüklemiyorum. Ama bu da Sorunu yeniden yaratıyor.
boyunca hep şeffaf şimdiye kadar çalıştı. Resim yükleme
- setMaxSize (0)
- i visualvm ile süreçlerini, - ve bellek kullanımı orada isnt
- engine.load patlayan bulundu: yükleme sayfaları arasında ("about boş")
Im gerçekten bu çünkü benim örnekte bir hata olup olmadığını shure değil çözümün her türlü, 3 gün boyunca Googling, ben herhangi
Im memnun şey veya doğal bir şey ... cevapsız yardım, thx!
- Java 1.8.0_77
@jewelsea Adil olmak gerekirse OP aslında bir soru sormadı. “Benim örneğimde bir yanlışlıktan dolayı gerçekten korkmuyorum” diye yanıt verdiler. Buna cevaben, bu problemi de gördüğümüzü doğruladık, yani onların hatalarının olması pek olası değil. –