Memory usage
So far, we have simply looked at the execution times and largely ignored the memory usage of the scripts. In many cases, the execution times are the most important, but memory usage should not be ignored. In almost all cases, CPU and memory are traded; an algorithm either uses a lot of CPU time or a lot of memory, which means that both do matter a lot.
Within this section, we are going to look at:
- Analyzing memory usage
- When Python leaks memory and how to avoid these scenarios
- How to reduce memory usage
tracemalloc
Monitoring memory usage used to be something that was only possible through external Python modules such as Dowser or Heapy. While those modules still work, they are partially obsolete now because of the tracemalloc
module. Let’s give the tracemalloc
module a try to see how easy memory usage monitoring is nowadays:
import tracemalloc
if __name__ == '__main__':
tracemalloc.start()
# Reserve...