Memory usage
So far we have simply looked at the execution times and 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; a code either uses a lot of CPU or a lot of memory, which means that both do matter a lot.
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 largely 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 some memory x = list(range(1000000)) # Import some modules import os import sys import asyncio # Take a snapshot to calculate the memory usage snapshot = tracemalloc.take_snapshot() for statistic in snapshot.statistics...