Other Profilers
Python Profiling Your Code
Boshqa Profiling Dasturlari
Python’da cProfile’dan tashqari ishlatishingiz mumkin bo'lgan bir nechta boshqa profiling paketlari mavjud. Quyida ba'zi mashhur paketlar keltirilgan:
- line_profiler - https://pypi.org/project/line-profiler/
- memory_profiler - https://pypi.org/project/memory-profiler/
- profilehooks - https://pypi.org/project/profilehooks/
- scalene - https://github.com/emeryberger/scalene
- snakeviz - https://pypi.org/project/snakeviz/
Ushbu kitobda barcha profiling dasturlari haqida batafsil ma'lumot berilmaydi; ammo, siz ularning ba'zilarini kitobning keyingi qismlarida, Python 201: Intermediate Python da o'rganishingiz mumkin.
Tezkor ko'rib chiqish uchun, har bir paket cProfile’dan qanday farq qilishini ko'rib chiqaylik.
line_profiler
line_profiler paketi har bir individual qatorni bajarish uchun sarflangan vaqtni profiling qilish uchun mo'ljallangan. U kernprof nomli buyruq satri vositasi bilan birga keladi, bu vositani line_profiler kodga qo'shish bilan birga ishlatishingiz mumkin.
Ushbu paketning chiqishi cProfile’dan ko'ra ancha ma'lumotli bo'ladi, chunki u kodingizni chiqarish bilan birga, har bir qatorda bajarilish vaqti haqida ham ma'lumot beradi. Bu esa, koddagi tormozlarni aniqlashda juda foydali bo'lishi mumkin.
memory_profiler
line_profiler va cProfile kodning sekin ishlayotgan qismlarini topishda juda yaxshi bo'lsa-da, ular xotira bilan bog'liq muammolarni aniqlay olmaydi. Buning uchun memory_profiler paketidan foydalanishingiz mumkin. memory_profiler paketi kodning har bir qatorini ko'rib chiqadi va qaysi qator yoki qatorlar eng ko'p xotira sarflayotganini aniqlaydi.
Uning chiqishi va API si line_profiler ga juda o'xshash bo'lib, agar memory_profiler ni ishlatmoqchi bo'lsangiz, line_profiler ni ham ko'rib chiqishingizni tavsiya qilaman. Ikkalasi ham kodingizdagi muammolarni aniqlashda juda foydali bo'lishi mumkin!
profilehooks
profilehooks paketi kodni profiling qilish uchun ishlatishingiz mumkin bo'lgan dekoratorlarni taqdim etadi. Ushbu paketni ishlatganingizda chiqadigan ma'lumot cProfile’dan olinadigan ma'lumotga juda o'xshash bo'ladi.
scalene
scalene paketi Python uchun ham CPU, ham xotira profilingini amalga oshiradi. U boshqa Python profiling dasturlariga qaraganda ancha tez ishlashini va profilingning ortiqcha yuklanishi 10-20% yoki undan kam bo'lishini da'vo qiladi. scalene ni line_profiler va memory_profiler ning tezroq ishlovchi kombinatsiyasi sifatida tasavvur qilishingiz mumkin. U line_profiler va memory_profiler kabi har bir qatorda CPU va xotira profilingini amalga oshiradi.
Ushbu loyihaning chiqishi line_profiler va memory_profiler ga o'xshash bo'lib, qo'shimcha ustunlar bilan kengaytirilgan bo'lishi mumkin.
snakeviz
snakeviz loyihasi Python’ning cProfile moduli chiqishini ko'rib chiqish uchun brauzerda ishlaydigan grafik ko'rish vositasidir va standart kutubxona pstats moduli o'rniga ishlatiladi. Bu sizga cProfile yordamida yaratilgan statistikalarni chiroyli grafiklar yoki boshqa vizualizatsiyalar shaklida ko'rsatadi.
Agar vizual odam bo'lsangiz, bu sizga yomon yozilgan kodni tezda topishda yordam berishi mumkin.
Last updated on