Ticket #8945

Garbage Collector not work correctly
Eröffnet am: 2006-09-10 12:00 Letztes Update: 2006-09-16 11:42

Auswertung:
Verantwortlicher:
Typ:
Status:
Geschlossen
Komponente:
Meilenstein:
(Keine)
Priorität:
9 - Höchste
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
Keine

Details

Garbage Collector seems not work correctly.

For example, executing this simple code there is not
memory in few minutes
and the PDA frozes.

import java.lang.Thread;
public class DestructorMemory{
public static void main(String[] args) {
String oString;
while (true){
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
oString=new
String
("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX");
try{
Thread.sleep(1);
}catch(InterruptedException e){}
}
}
}


Console with -verbose:gc shows...

[FULL GC 2047K -> 516K(1531K), 0.050665 secs]
[Starting finalize (33 objects)]
[FULL GC 2047K -> 362K(1685K), 0.061390 secs]
[Starting finalize (0 objects)]
[FULL GC 2047K -> 362K(1685K), 0.062658 secs]
[Starting finalize (0 objects)]
[FULL GC 2047K -> 362K(1685K), 0.061723 secs]
[Starting finalize (0 objects)]

Ticket-Verlauf (2/2 Historien)

2006-09-10 22:39 Aktualisiert von: freebeans
Kommentar
Logged In: YES
user_id=14530

monitor.cpp内のmonitor_wait()で、CreateEvent()を2回実施して
いたことが原因。1回目のCreateEvent()で作成されたHANDLEがリ
ークしていた。
この部分を修正することにより、問題は解決した模様。
もう少し様子を見て、Version 0.3.1でリリースするかどうか決定
する。
2006-09-16 11:42 Aktualisiert von: freebeans
  • Ticket Close date is changed to 2006-09-16 11:42
  • Lösung Update from Keine to Gefixt
  • Status Update from Offen to Geschlossen
Kommentar
Logged In: YES
user_id=14530

Version0.3.1としてリリース済み。

Dateianhangliste

Keine Anhänge

Bearbeiten

Please login to add comment to this ticket » Anmelden