私のアプリケーションでは、次のコードを使用して時間のセクションを作成しています。しかし、コードの下のは徐々にメモリをリークします。 Jlabel
のsetText()
のためですか?日付と文字列を使用したメモリリークJava
誰でもエラーの特定にご協力いただけますか?
また、Dateformat
とDate
のメモリをjavaで解放する方法を教えてください。
Thread th= new Thread(new Runnable() {
public void run() {
DateFormat dateformat_s2= null;
Date date_int_s2=null;
String date_time_s2=null;
while(c==1) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
dateformat_s2= new SimpleDateFormat("dd:MM:yyyy HH:mm:ss");
date_int_s2= new Date();
date_time_s2 = dateformat_s2.format(date_int_s2);
time_end_label.setText(""+date_time_s2);
date_time_s2=null;
dateformat_s2=null;
date_int_s2=null;
}
}
});
"次のコードではメモリが徐々にリークします。"どのようにこれをテストしていますか? Full GC後にどれだけのメモリを使用するかを印刷できますか? –
目次別のスレッドでGUIコンポーネントを更新しないでください。私はGUI上でのみ更新をお勧めします。 –
'dateformat'または 'date'のメモリを解放する必要はありません.Javaのガベージコレクタは自動的に余分にこれを整理します。 – Jason