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