Putting the Trash Compactor to Use

At Works, we frequently organise webinars and events to connect our community with various opportunities. Our engineers willingly share their technical expertise on topics such as establishing Docker environments and the fundamentals of ReactJS.

Amuda elaborates on the basics of waste disposal and gives recommendations on how to optimise this service.

The full name of the individual in question is Amuda Adeolu Badmus.

Would you be able to clarify the concept of waste disposal?

Inevitably, any system that is unable to eliminate outdated or unnecessary information will malfunction. Garbage Collectors facilitate the computer in reclaiming free storage space.

Programming languages such as Python and JavaScript implement a Garbage Collection (GC) system which allows them to recover memory in the event of an error. In GC-enabled programming languages, GC engines retrieve memory from obsolete objects. Freed RAM can then be utilised by the application to allocate new objects.

In every software development procedure, the implementation of garbage collection is vital, as it prevents applications from utilizing all available memory. Apart from ensuring fluid functionality, it can also circumvent crashes caused by memory leaks.

Methods of Garbage Collection

Garbage Collection (GC) is an automated process that is present in several computer languages, ranging from C# to HTML. Languages that allow GC support may provide options to initiate garbage collection. However, the execution of this process may differ depending on the language. Garbage collection can also be integrated into an existing language using libraries or modules.

Garbage Collection (GC) plays a critical role in the efficient operation of many contemporary computer languages. However, despite several advantages, its use of CPU resources can cause drawbacks on performance. A few programmers are cautious about using GC as they believe they have more command over memory deallocation than an automated system.

Despite embracing its utilization and integration into most advanced programming languages, Garbage Collection (GC) has become the common standard for managing memory among programmers and engineers. With technological advancements, several methodologies have been introduced to curtail the impact of GC on the performance.

Approaches Employed in the Waste Management Process

Initially, it distinguishes and categorizes every animate object, being employed, or alluded to.

Eliminate the mess, declutter, and retrieve the floor space by sweeping.

With regard to the third point, “compaction” is the act of going through and relocating all alluded objects to the survivor area in order to retrieve memory.

Inability of the Garbage Collector (GC) to eliminate outdated data raises the occurrence of an OutOfMemory (OOM) error. This culmination causes termination of the programme.

Enhancing Garbage Collection Duration and Preventing Memory Leaks

Avoid Combining the try and finally keywords.

The Initial Reason

By nesting try-finally blocks, one can prevent input stream leakage caused by the exception that arises from the output.close() statement found in the finally block.


Undetected mistakes may cause the gathering of leftover resources, despite the rare occurrence of an unhandled error.

For Example:

In addition to inconsistent latency and unbridled actions, there are several other issues regarding execution and security.

Tips for Moving Ahead

Preferably utilize the “try-with-resources” technique.

It is important to ensure the correct utilization of resources, ensuring their closure methods get invoked without fail, irrespective of any exceptions thrown.

Avoid using System.gc (Step #3).

The Primary Reason

Executing System.gc() is not a proficient method of reclaiming space in use, since the heap (a memory section responsible for storing created objects in a Java Virtual Machine) is autonomous to Java allocations.


Identifying the specific thread among several others that isn’t utilizing the assigned resource can be quite challenging in a multi-threaded system.

Eliminating all mentions of an element

Nullifying the reference to an object ensures it is unreferenced, only after confirming that it’s no longer required.

The Garbage Collection (GC) is triggered when an item is inaccessible.

Avoid generating new objects during iteration if they’re insignificant.

Opt for the primitive type over boxed primitive type.

The Primary Reason

Unlike primitives that only have values, boxed primitives have identities separate from their values.


A primitive type has only one possible value, unlike a boxed primitive type that has one inapplicable value(empty).


Primitives are more efficient in terms of both time and space compared to boxed primitives.

Avoid excessive use of static variables.

The Primary Reason

Typically, a static field exists for the same duration as the lifespan of the current program.


The heap memory usage of an object grows in proportion to the size of the referenced object, as long as it remains active, and any unused objects will have a null reference.

Consider Composition

Substitute default equals and hashCode with custom versions.

The Primary Reason

ORM frameworks may pose a risk of memory leaks if the essential methods are not overridden because the framework cannot compare objects. Consequently, multiple copies of each object may be stored in the cache.

I believe this will prove useful to you.

Are you interested in joining the Works Community? Consider registering for the Works Talent Network.

Our company strives to build diverse remote engineering teams from our vast community, comprising more than 175,000 technicians from 90 countries. Members of our network gain access to numerous perks and opportunities for personal and professional growth by becoming a part of our community.

Enrolling in the Works Talent Network is simple; just provide the information in the compulsory fields.

Kindly complete our online application form and…

Complete a 15-minute test to demonstrate your English proficiency.

Finish a one-hour technical assessment in the programming language of your preference (e.g., Python, Golang, etc.).

During this hour-long interview, you will have the opportunity to discuss your work with a senior developer at our firm.

Visit the Works Talent Network registration page for additional information.

If this blog article was helpful, you may want to explore our other pieces.

Join the Top 1% of Remote Developers and Designers

Works connects the top 1% of remote developers and designers with the leading brands and startups around the world. We focus on sophisticated, challenging tier-one projects which require highly skilled talent and problem solvers.
seasoned project manager reviewing remote software engineer's progress on software development project, hired from Works blog.join_marketplace.your_wayexperienced remote UI / UX designer working remotely at home while working on UI / UX & product design projects on Works blog.join_marketplace.freelance_jobs