Packages

Tracking Memory Usage in Python with tracemalloc

Posted by Afsal on 21 Mar 2025

Hi Pythonistas!

Efficient memory management is key to writing optimized Python code, especially when dealing with large datasets or performance-sensitive applications. Python provides a built-in tool called tracemalloc to track memory usage and detect potential issues.

What is tracemalloc?
tracemalloc (short for Trace Memory Allocations) is a built-in module that helps monitor memory usage and identify which parts of your code consume the most memory.

Why use tracemalloc?

Measure current and peak memory usage
Optimize high-memory-consuming functions
Debug memory leaks in long-running applications

Getting Started with tracemalloc

Let’s track the memory usage of a function that creates a large list:

code

import tracemalloc

def memory_hungry_function():
    nums = [x for x in range(10**6)]
    return sum(nums)

tracemalloc.start()

memory_hungry_function()

current, peak = tracemalloc.get_traced_memory()
print(f"Current memory usage: {current / 1024**2:.4f} MB")
print(f"Peak memory usage: {peak / 1024**2:.4f} MB")

tracemalloc.stop()

 Output

Current memory usage: 0.0018 MB
Peak memory usage: 34.7549 MB

tracemalloc.start(): Begins tracking memory allocations
tracemalloc.get_traced_memory(): Returns current and peak memory usage
tracemalloc.stop(): Stops tracking memory

Practical Applications

  • Optimize functions with high memory consumption
  • Track memory usage over time in long-running applications
  • Debug unexpected memory spikes

Stay tuned for Part 2, where we explore advanced profiling and memory leak detection!

← Previous Post Next Post →

Recent posts