I made a little clock for a desktop widget in Java(the widget includes many other features as well). I checked the applications RAM usage in task manager to see that the clock was using 700+ MB of RAM. I disabled the clock and the RAM usage went down to about 60 MB. Here is the clocks code:
final int timeRun = 0;
new Thread()
{
public void run()
{
while(timeRun == 0)
{
Calendar cal = new GregorianCalendar();
int hour = cal.get(Calendar.HOUR);
int min = cal.get(Calendar.MINUTE);
int sec = cal.get(Calendar.SECOND);
int AM_PM = cal.get(Calendar.AM_PM);
String day_night = "";
if (AM_PM == 1){
day_night = "PM";
}else{
day_night = "AM";
}
String time = hour + ":" + min + ":" + sec + " " + day_night;
Clock.setText(time);
}
}
}.start();
Why is it using so much RAM? How could I fix it?
Take a look at:
For example...
The reason the
SwingTimer
uses a500
millisecond delay is to ensure we remain in sync, otherwise your clock might update "out of sync" with the rest of the UI because you've missed a second boundry. If this is not important to you, you could us1000
millisecond delay instead