Инструменты профилирования в Python
На PyCon 2023 было вводное выступление про профилирование (Python Profiling State of the World), которое дает повод обновить шортлист на эту тему. Шортлист — это что-то типа минимального набора, который покрывает большинство кейсов и который я бы рассматривал для своей реальной практики.
У меня так:
- py-spy для CPU (можно применить даже к уже запущенному процессу)
- memray для RAM
- speedscope для просмотра flamecharts (это чуть более модная версия flamegraphs, и py-spy нативно умеет выдавать speedscope формат, узнал это все из видео)
- torch.profiler для пользователей PyTorch (не путать со старым `torch.autograd.profiler`), есть визуализация в TensorBoard.
И немного выходя за пределы шортлиста:
- cProfile, потому что входит в стандартную библиотеку
- scalene, потому что в теории умеет все сразу (CPU, RAM, GPU, и так далее).
@simple_it_channel
Post #34
731
- 🔥 7