11 lines
795 B
Plaintext
11 lines
795 B
Plaintext
Calling ``++System.gc()++`` or ``++Runtime.getRuntime().gc()++`` is a bad idea for a simple reason: there is no way to know exactly what will be done under the hood by the JVM because the behavior will depend on its vendor, version and options:
|
|
|
|
* Will the whole application be frozen during the call?
|
|
* Is the ``++-XX:DisableExplicitGC++`` option activated?
|
|
* Will the JVM simply ignore the call?
|
|
* ...
|
|
|
|
Like for ``++System.gc()++``, there is no reason to manually call ``++runFinalization()++`` to force the call of finalization methods of any objects pending finalization.
|
|
|
|
|
|
An application relying on these unpredictable methods is also unpredictable and therefore broken. The task of running the garbage collector and calling ``++finalize()++`` methods should be left exclusively to the JVM. |