Board logo

標題: 無爆Java Heap size Memory,但爆 Actual PC memory [打印本頁]

作者: jackso    時間: 2015-9-29 16:04     標題: 無爆Java Heap size Memory,但爆 Actual PC memory

想問各位高手,本人寫了一個JavaFX application 不停monitor一些事情。
問題Heap Memory沒有爆,但actual memory in PC 就不停升,直至out of PC memory,請大家有何方法可以解決?
程式是用WebView去檢查某個網頁。

        public void deleteCache() {
                webEngine.load(null);
                // Delete cache for navigate back
                webEngine.load("about:blank");
                // Delete cookies
                java.net.CookieManager manager = new java.net.CookieManager();
                java.net.CookieHandler.setDefault(manager);
                manager.getCookieStore().removeAll();
        }
用了以上程式碼亦不能解決!除非Close application,d memory才release

常試用VisualVM去檢查 Heap memory一切正常(沒有out of memory)!
[attach]1830379[/attach]
作者: hihihi123hk    時間: 2015-10-3 15:21

想問各位高手,本人寫了一個JavaFX application 不停monitor一些事情。
問題Heap Memory沒有爆,但actual m ...
jackso 發表於 2015-9-29 16:04



    就咁睇,似係你啲 Thread 入面有 Object 未 Release reference, 令到你每次做 Request 開嘅 Thread 都唔可以做 GC ,個 System 愈行愈多 「死Thread」卡住食哂啲 RAM
作者: jackso    時間: 2015-10-3 21:04

師兄謝謝你回覆先!不過已經check過,因為動作重覆,Object基本上都係重用,至於其他insertstatement,connection和bufferedreader,全部都有close!上網search左好耐,試過照做但唔出Webview,一行System.gc()已經可以回收RAM,似乎係Javafx  application thread 無release ram!但想問師兄有沒有辦法睇到係咩object 未release reference, 從VisualVM只見到用得最多RAM係byte[]。
作者: 景太郎    時間: 2015-10-9 00:02

係咪不停開新FILE? OR stream?
作者: jackso    時間: 2015-10-10 00:49

回覆 4# 景太郎

不停load webview 和 BufferedReader read webpage source,但reader 最後都有 reader.close()

main.webViewController.loadPage(urlLink);

BufferedReader reader = new BufferedReader(new StringReader(main.webViewController.getPageContent()));

始終找不到原因!
作者: gakko    時間: 2015-10-10 10:19

System.gc只係會將無指向任何pointer既object release
如果object本身本身hold住就release唔到
應該用Memory Analysis黎睇下個object count係唔係一直變大
同埋有無d memory leak
作者: henrywho    時間: 2015-10-13 10:30

用 TLS?
作者: bugtester    時間: 2015-10-13 18:08

你喺邊度睇system memory usage 因為你個 javafx program 而升?
作者: bugtester    時間: 2015-10-13 18:20

我唔知webengine個implementation 係點. 但有D 野可以睇, 你係咪每次都 new 一個webengine 去做野? 如果係, 試下用番同一個. 行另一個website 有冇問題?
再唔係你試下用傳統嗰D lib , eg, httpclient 去做.





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2