objectif
Mesurer les allocations et identifier les lignes sources responsables.
code minimal
import tracemalloc
tracemalloc.start()
a = [b"x"*1000 for _ in range(10)]
current, peak = tracemalloc.get_traced_memory()
print(peak >= current >= 0) # attendu: True
tracemalloc.stop()
utilisation
import tracemalloc
tracemalloc.start()
# ... votre code ...
snapshot = tracemalloc.take_snapshot()
stats = snapshot.statistics("lineno")
print(isinstance(stats, list))
variante(s) utile(s)
import tracemalloc
tracemalloc.start()
print(tracemalloc.is_tracing())
tracemalloc.stop()
notes
- Combinez avec statistics(“filename”/“traceback”) pour isoler les hotspots.
- Démarrez tôt pour capturer les allocations initiales.