F
Florent Coué
Hello,
I have an application Java who is bounded to 64Mb.
This application instanciate a certain numbers of objects to attain about
30Mb a
thrown time.
On some actions, the application instanciate again the same objects.
The used memory increases in consequence.
First objects are not more referenced.
Normally, for all objects not referenced, the memory ought to be recoverred
by the garbage collector.
The memory ought to maintain to about 30 Mb.
But, It's not the case.
By forcing the garbage collector by System gc() or System
runFinalization() and tracing methods finalize() called on some objects, I
see that methods finalize() are not systematically called to recover the
memory.
To the end of a moment, the screens (swing) becomes of more slow as far as
to block
definitely.
Is it advised to make calls to System.gc() ?
Do you know the working of the garbage collector under Windows 2000 ?
Is it executed in a thread ?
How to avoid this kind of problem ?
Thanks for help.
Florent
I have an application Java who is bounded to 64Mb.
This application instanciate a certain numbers of objects to attain about
30Mb a
thrown time.
On some actions, the application instanciate again the same objects.
The used memory increases in consequence.
First objects are not more referenced.
Normally, for all objects not referenced, the memory ought to be recoverred
by the garbage collector.
The memory ought to maintain to about 30 Mb.
But, It's not the case.
By forcing the garbage collector by System gc() or System
runFinalization() and tracing methods finalize() called on some objects, I
see that methods finalize() are not systematically called to recover the
memory.
To the end of a moment, the screens (swing) becomes of more slow as far as
to block
definitely.
Is it advised to make calls to System.gc() ?
Do you know the working of the garbage collector under Windows 2000 ?
Is it executed in a thread ?
How to avoid this kind of problem ?
Thanks for help.
Florent