Profiling a Python Script with cProfile
Python Profiling Your Code
Python Skriptini cProfile Bilan Profiling Qilish
Kod yozishda har doim ba'zi funksiyalar boshqalardan sekin bo'lishi mumkin. Sezilarli sekin funksiyalarni simulyatsiya qilishning bir usuli - Pythonning time modulidan foydalanishdir, bu modulda sleep() funksiyasi mavjud.
Keling, profile_test.py deb nomlangan bir dastur yozaylik, unda turli miqdorlarda vaqtni kutadigan bir nechta funksiyalar mavjud:
Bu yerda to'rt ta funksiya mavjud:
- quick() - sleep() ishlatmaydi
- average() - yarim soniya kutadi
- super_slow() - 2 soniya kutadi
- main() - dasturingizning asosiy kirish nuqtasi
main() funksiyasi dasturingizdagi barcha boshqa funksiyalarni ishga tushiradi va quick() ni ikki marta chaqiradi.
Siz bu kodni avvalgi bo'limda ko'rsatilganidek, cProfile yordamida profiling qilishingiz mumkin:
Chiqishi quyidagicha bo'ladi:
Bu chiqishdan quick() funksiyasining ikki marta chaqirilganini ko'rish mumkin. Shuningdek, print() funksiyasi to'rt marta chaqirilgan, va time.sleep() funksiyasi ikki marta chaqirilgan. Boshqa hamma narsa bir marta chaqirilgan. Eslatib o'tish joizki, bu kodni qaysi shellda ishga tushirayotganingizga qarab, ko'proq chiqish olishingiz mumkin. Ammo agar siz standart Python konsolidan foydalansangiz, yuqoridagi chiqishga o'xshash natija ko'rishingiz kerak.
super_slow() funksiyasi 2 soniya davomida ishladi, average() funksiyasi esa 0.5 soniya davomida ishladi. main() funksiyasi barcha boshqa funksiyalarni chaqirganligi sababli, 2.5 soniyadan biroz ko'proq vaqt talab qildi.
Ushbu ma'lumotni tahlil qilish orqali, average() va super_slow() funksiyalariga e'tibor qaratishingiz kerakligini ko'rishingiz mumkin, chunki ularni optimallashtirish dasturingizni tezlashtirishga yordam beradi.
Shuningdek, quyidagi tarzda komanda qatorida ham kodni profiling qilishingiz mumkin:
Chiqish yuqoridagi chiqishga juda o'xshash bo'ladi.
Agar xohlasangiz, cProfile chiqishini faylga saqlashni ham sozlashingiz mumkin. Buning uchun -o flag'idan foydalaning:
Bu yerda profiling chiqishini profile_output.txt nomli faylga saqlaysiz. Agar bu faylni matn tahrirlovchisida ochishga harakat qilsangiz, u inson o'qishiga yaroqsiz bo'ladi.
Faylni o'qish va tahlil qilish uchun Pythonning pstats modulidan foydalanishingiz kerak. Keyingi bo'limda shuni qanday amalga oshirishni ko'rib chiqamiz!
Last updated on