Robocikowo>ROBOCIKOWO

Python — od podstaw do zaawansowanego · Performance i profilowanie

memory_profiler i tracemalloc

Performance i profilowanie

Wprowadzenie

Czas wykonania to nie wszystko. Wiele programów Pythona pada nie dlatego że są wolne, ale dlatego że zjadają całą pamięć RAM. Profilowanie pamięci to drugi filar performance — odpowiada na pytanie: „dlaczego mój skrypt zżarł 8 GB?".

Dwa główne narzędzia: memory_profiler (zewnętrzny pakiet, dekorator @profile mierzący zużycie pamięci linia-po-linii) oraz tracemalloc (wbudowany w stdlib od 3.4, śledzi alokacje przez moduł CPython i daje snapshoty + statystyki przyrostów).

Lekcja pokazuje: jak działa @profile z memory_profiler, jak czytać przyrosty „Increment", mprof run / mprof plot, snapshoty tracemalloc i porównania compare_to, polowanie na wycieki, rolę gc, sys.getsizeof (i jego pułapki), oraz triki pamięciowe: generatory, __slots__, array.array/numpy.