All Downloads are FREE. Search and download functionalities are using the official Maven repository.

resources.report.rules.pmd.DoNotCallGarbageCollectionExplicitly.html Maven / Gradle / Ivy

Go to download

Sanity4J was created to simplify running multiple static code analysis tools on the Java projects. It provides a single entry point to run all the selected tools and produce a consolidated report, which presents all findings in an easily accessible manner.

The newest version!


DoNotCallGarbageCollectionExplicitly


DoNotCallGarbageCollectionExplicitly

Calls to System.gc(), Runtime.getRuntime().gc(), and System.runFinalization() are not advised. Code should have the same behavior whether the garbage collection is disabled using the option -Xdisableexplicitgc or not. Moreover, "modern" jvms do a very good job handling garbage collections. If memory usage issues unrelated to memory leaks develop within an application, it should be dealt with JVM options rather than within the code itself.

This rule is defined by the following XPath expression:

                    
//Name[
(starts-with(@Image, 'System.') and
(starts-with(@Image, 'System.gc') or
starts-with(@Image, 'System.runFinalization'))) or
(
starts-with(@Image,'Runtime.getRuntime') and
../../PrimarySuffix[ends-with(@Image,'gc')]
)
]

                

Example:

                
            [
            public class GCCall
            {
     	public GCCall()
                	{
                        // Explicit gc call !
                        System.gc();
                	}
	public void doSomething()
	 {
		// Explicit gc call !
		Runtime.getRuntime().gc();
	}

public explicitGCcall() { // Explicit gc call ! System.gc(); }

public void doSomething() { // Explicit gc call ! Runtime.getRuntime().gc(); } }


			
		
            




© 2015 - 2024 Weber Informatics LLC | Privacy Policy