UK tech experts · info@vividrepairs.co.uk
Vivid Repairs

Glossary/software-systems

Memory Leak

A software defect where a programme fails to release memory that is no longer needed, causing available system memory to gradually decrease until performance degrades or the application crashes.

Also known as: memory bloat, unreleased memory, memory not freed, memory accumulation

A memory leak occurs when software allocates memory space during execution but fails to return that memory to the system when it is no longer required. Over time, this unreleased memory accumulates, reducing the amount of available memory for other processes and eventually degrading system performance.

Memory leaks happen because programmers forget to explicitly free allocated memory, create circular references that prevent automatic cleanup, or have bugs in their memory management code. Languages like C and C++ require manual memory deallocation, making leaks more common. Modern languages such as Python and Java use garbage collection to automatically reclaim unused memory, but memory leaks can still occur if objects are mistakenly kept alive in memory caches or listener lists.

Why it matters: A small leak in long-running software (servers, background processes, always-on applications) becomes a serious problem. The application consumes more and more memory until either the system runs out of RAM, forcing it to use slow disk storage as virtual memory, or the operating system terminates the programme entirely.

Common causes:

  • Forgotten cleanup code when applications close database connections or file handles
  • Event listeners registered but never unregistered
  • Cached data that grows without bounds
  • Global variables holding references longer than necessary

What you can do: Monitor memory usage over time using system tools. If an application's memory consumption climbs steadily without returning to normal levels, a memory leak is likely present. Report this to developers with details about which actions trigger the leak. For critical applications, restart them periodically as a temporary workaround until fixes are released.