Learning How to Profile with cProfile
Python Profiling Your Code
cProfile bilan Kodni Tahlil Qilishni O'rganish
Birinchi qadam - profiling qilish uchun nimadir topish. Yaxshiyamki, boshlash juda oson. Python’dagi deyarli har qanday modulni import qilib, uni cProfile yordamida tahlil qilishingiz mumkin.
Keling, Pythonning secrets modulini sinab ko'raylik, bu modul kriptografik jihatdan kuchli tasodifiy raqamlar yaratish uchun ishlatiladi:
Chiqishi quyidagicha bo'ladi:
Bu yerda secrets va cProfile modullarini import qilasiz. Keyin, secrets.token_bytes(16) ni tahlil qilish uchun uni qo'shtirnoqlar ichida yozib, cProfile.run() ga uzatasiz. Yuqoridagi chiqishdan ko'rinib turibdiki, funksiyalar faqat bir marta chaqirildi va hech qanday aniq tor joylar mavjud emas.
Endi chiqishdagi har bir ma'lumotni tahlil qilib ko'raylik:
- ncalls - chaqiruvlar soni, ya'ni funksiya nechta marta chaqirilgan
- tottime - berilgan funksiyada sarflangan umumiy vaqt
- percall - tottime ning ncalls ga bo'lingan qiymati
- cumtime - funksiya va uning barcha kichik funksiyalarida sarflangan umumiy vaqt
- percall - ikkinchi percall qiymati, ya'ni cumtime ning asosiy chaqiruvlar soniga bo'lingan qiymati
- filename:lineno(function) - har bir chaqiruv uchun fayl nomi va satr raqami haqida ma'lumot
- primitive call - rekursiya natijasida bo'lmagan chaqiruvlar
Bu misol juda qiziqarli emas, chunki hamma narsa faqat bir marta chaqirilib, aniq bottlenecklar yo'q.
Endi profilingdan qanday foyda olish mumkinligini ko'rish uchun biroz boshqa kod yozaylik!
Last updated on