Bloomberg відкрив код memray, інструмент профілювання пам'яті для Python

Компанія Bloomberg відкрила вихідні тексти memray, інструментарію для профілювання пам'яті у програмах Python. Програма відстежує операції виділення пам'яті в Python і пропонує наочний інтерфейс для аналізу та оптимізації споживання пам'яті різними ділянками коду, а також модулями, що підключаються на C/C++. Звіти можуть формуватись як в інтерактивній формі, так і генеруватися у форматі HTML. До складу входить CLI-інтерфейс для керування профільуванням та бібліотека, яку можна використовувати для відстеження операцій із пам'яттю у сторонніх проектах. Код опубліковано за ліцензією Apache 2.0. Робота підтримується лише на платформі Linux.

Основні можливості:

  • Області застосування: виявлення причин великого споживання пам'яті у програмах, пошук витоків пам'яті та визначення коду, що виконує надто багато операцій виділення пам'яті.
  • Відстеження всіх викликів функцій у прив'язці до загального споживання пам'яті, споживання всередині функції та кількості операцій виділення пам'яті. Можливість точної оцінки стека дзвінків.
  • Обробка звернень до бібліотек на C/C++ та облік споживання пам'яті нативних модулях. Підтримка аналізу проектів, що використовують numpy та pandas.
  • Мінімальні накладні витрати та незначний вплив на продуктивність аналізованого додатка. Можливість відключення відстеження нативного коду підвищення продуктивності.
  • Наявність великої кількості звітів використання пам'яті, включаючи наочні ієрархічні і ступінчасті графіки (flame graph).
  • Можливість роботи з потоками та аналізу пам'яті в розрізі окремих потоків. Підтримуються як потоки Python, так і нативні потоки, такі як C++ threads, які застосовуються в модулях C/C++.
  • Можливість інтеграції з pytest та надання анотацій pytest, що визначають рамки споживання пам'яті, при виході за які у процесі виконання тестів формуватимуться попередження.

Bloomberg відкрив код memray, інструмент профілювання пам'яті для Python
Bloomberg відкрив код memray, інструмент профілювання пам'яті для Python


Джерело: opennet.ru

Додати коментар або відгук