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

Дадаць каментар