Bloomberg-ն ունի բաց կոդով memray՝ Python հավելվածներում հիշողության պրոֆիլավորման գործիք: Ծրագիրը հետևում է Python-ում հիշողության բաշխման գործողություններին և առաջարկում է տեսողական ինտերֆեյս՝ վերլուծելու և օպտիմալացնելու հիշողության սպառումը կոդի տարբեր բաժինների, ինչպես նաև C/C++-ով գրված պլագինների համար: Հաշվետվությունները կարող են ստեղծվել կամ ինտերակտիվ կամ HTML ձևաչափով: Այն ներառում է CLI ինտերֆեյս՝ պրոֆիլավորումը կառավարելու համար և գրադարան, որը կարող է օգտագործվել երրորդ կողմի նախագծերում հիշողության գործողություններին հետևելու համար: Կոդը հրապարակված է Apache 2.0 լիցենզիայի ներքո: Գործողությունը աջակցվում է միայն Linux հարթակում:
Հիմնական առանձնահատկությունները.
- Ծրագրեր. Բացահայտեք հավելվածներում հիշողության մեծ սպառման պատճառները, հայտնաբերեք հիշողության արտահոսք և նույնականացրեք կոդը, որը չափազանց շատ հիշողություն է հատկացնում:
- Հետևում է բոլոր գործառույթների կանչերին՝ կապված հիշողության ընդհանուր սպառման, ֆունկցիայի ներսում սպառման և հիշողության բաշխման գործողությունների քանակի հետ: Զանգերի կույտը ճշգրիտ գնահատելու ունակություն:
- Գրադարանների զանգերի մշակում C/C++-ով և հիշողության սպառման հաշվառում բնիկ մոդուլներում: Աջակցություն նախագծերի վերլուծությանը՝ օգտագործելով numpy և pandas:
- Նվազագույն ծախսեր և աննշան ազդեցություն վերլուծված հավելվածի աշխատանքի վրա: Կոդերի հետագծումն անջատելու տարբերակ՝ կատարողականությունը բարելավելու համար:
- Հիշողության օգտագործման մեծ թվով հաշվետվությունների առկայություն, ներառյալ տեսողական հիերարխիկ և սանդուղքի գրաֆիկները (բոցի գրաֆիկ):
- Թելերի հետ աշխատելու և հիշողությունը վերլուծելու ունակություն առանձին թելերի համատեքստում: Աջակցվում են և՛ Python շղթաները, և՛ բնիկ շղթաները, ինչպիսիք են C++ թելերը, որոնք օգտագործվում են C/C++ մոդուլներում:
- pytest-ի հետ ինտեգրվելու հնարավորություն և pytest ծանոթագրությունների տրամադրում, որոնք սահմանում են հիշողության սպառման սահմանները, եթե դրանք գերազանցվեն, նախազգուշացումները կստեղծվեն թեստի կատարման ժամանակ:
Source: opennet.ru