Bloombergilla on avoimen lähdekoodin memray, työkalu muistin profilointiin Python-sovelluksissa. Ohjelma seuraa muistin varaustoimintoja Pythonissa ja tarjoaa visuaalisen käyttöliittymän koodin eri osien muistinkulutuksen analysointiin ja optimointiin sekä C/C++-kielellä kirjoitettuihin laajennuksiin. Raportit voidaan luoda joko interaktiivisesti tai HTML-muodossa. Se sisältää CLI-rajapinnan profiloinnin hallintaan ja kirjaston, jota voidaan käyttää muistitoimintojen seuraamiseen kolmannen osapuolen projekteissa. Koodi on julkaistu Apache 2.0 -lisenssillä. Toimintaa tuetaan vain Linux-alustalla.
Tärkeimmät ominaisuudet:
- Sovellukset: Tunnista syyt korkeaan muistinkulutukseen sovelluksissa, etsi muistivuotoja ja tunnista koodi, joka suorittaa liian monta muistin varausta.
- Seuraa kaikkia toimintokutsuja suhteessa muistin kokonaiskulutukseen, funktion kulutukseen ja muistin varaustoimintojen määrään. Kyky arvioida tarkasti puhelupino.
- Käsittelee kutsuja kirjastoihin C/C++-kielellä ja laskee muistinkulutuksen alkuperäisissä moduuleissa. Tuki projektien analysointiin numpylla ja pandoilla.
- Minimaalinen yleiskustannukset ja merkityksetön vaikutus analysoitavan sovelluksen suorituskykyyn. Mahdollisuus poistaa natiivikoodin seuranta käytöstä suorituskyvyn parantamiseksi.
- Saatavilla on suuri määrä muistinkäyttöraportteja, mukaan lukien visuaaliset hierarkkiset ja tikapuukaaviot (liekkikaavio).
- Kyky työskennellä säikeiden kanssa ja analysoida muistia yksittäisten säikeiden kontekstissa. Sekä Python-säikeet että alkuperäiset säikeet, kuten C/C++-moduuleissa käytetyt C++-säikeet, ovat tuettuja.
- Mahdollisuus integroida pytestiin ja tarjota pytest-merkintöjä, jotka määrittelevät muistinkulutusrajat, jos ylittyy, varoituksia luodaan testin suorittamisen aikana.
Lähde: opennet.ru