簡體   English   中英

Java內存泄漏跡象

[英]Java Memory leakage signs

我一直在做一個應用程序,我一直在跟蹤它的內存使用情況。 應用程序的內存大約為58,676 K,如下所示。 在此輸入圖像描述

這是我的GUI。

在此輸入圖像描述

那個關閉按鈕有一個功能,使該面板不可見。

private final ActionListener closeButtonAL = new ActionListener(){

    @Override
    public void actionPerformed(ActionEvent e) {
        timeUtilities.getPanel().setVisible(false);
    }

};

我還有一個按鈕,使面板再次可見。

private final ActionListener showPanelAL = new ActionListener(){

    @Override
    public void actionPerformed(ActionEvent e) {
        timeUtilities.getPanel().setVisible(true);
    }

};

該面板已在應用程序開始顯示之前初始化。

我的問題是,只需使GUI出現並再次關閉它就可以再次增加應用程序的內存使用量。

這不是某種內存泄漏嗎? 無論答案如何,我該如何預防此事?

在此輸入圖像描述

不,這可能不是內存泄漏的跡象。 因為當您關閉並多次打開gui時,您的應用可能會創建並丟棄某些對象。 但是JVM可能還沒有垃圾收集它們。 如果你想要真實的圖片使用分析工具。 GC運行后,隨着時間的推移進行堆轉儲。 這將告訴你內存中還剩下什么。

這可以幫助您縮小尋找可能的內存泄漏的范圍。

最簡單的工具來分析。

  1. Netbeans帶有一個內置的分析器。
  2. Jconsole也可以幫助一點
  3. VisualVm也可以幫助一點。

另請參閱此鏈接如何分析heapdumps

您應該使用分析器來查找內存泄漏。

在NetBeans中,“運行項目”和“調試項目”按鈕旁邊的頂部是“配置文件項目”按鈕(Alt-F2)。

首次運行時,它可能會要求您進行校准或其他操作。

Afterwars,您可以選擇分析CPU或內存。 如果單擊Memory,選中“Simple”,然后單擊Run,您可以運行項目並查看使用內存的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM