Performance Observer API'ning real vaqtdagi veb ishlash samaradorligini kuzatish, Core Web Vitals'ni tahlil qilish va global auditoriya uchun foydalanuvchi tajribasini optimallashtirishning kuchli va xalal bermaydigan usulini qanday taqdim etishini o'rganing.
Veb Ishlash Samaradorligini Oshirish: Performance Observer API'ni Chuqur O'rganish
Bugungi tezkor raqamli dunyoda veb ishlash samaradorligi hashamat emas, balki zaruratdir. Sekin yoki javob bermaydigan veb-sayt foydalanuvchilarning hafsalasi pir bo'lishiga, saytdan tez chiqib ketish ko'rsatkichlarining oshishiga va biznes maqsadlariga, xoh u savdo, reklama daromadi yoki foydalanuvchilarning jalb qilinishi bo'lsin, to'g'ridan-to'g'ri salbiy ta'sir ko'rsatishi mumkin. Ko'p yillar davomida dasturchilar ishlash samaradorligini bir vaqtning o'zida, odatda sahifaning dastlabki yuklanishi paytida o'lchaydigan vositalarga tayanishgan. Bu foydali bo'lsa-da, ushbu yondashuv hikoyaning muhim qismini o'tkazib yuboradi: foydalanuvchining sahifa bilan o'zaro aloqasi davomidagi butun tajribasi. Aynan shu yerda real vaqtdagi ishlash samaradorligi monitoringi yordamga keladi va uning eng kuchli vositasi Performance Observer API hisoblanadi.
An'anaviy usullar ko'pincha performance.getEntries() kabi funksiyalar yordamida ishlash samaradorligi ma'lumotlarini so'rov (polling) orqali olishni o'z ichiga oladi. Bu samarasiz bo'lishi, so'rovlar orasida sodir bo'ladigan muhim hodisalarni o'tkazib yuborishga moyil bo'lishi va hatto o'zi o'lchashga harakat qilayotgan ishlash samaradorligiga qo'shimcha yuklama qo'shishi mumkin. Performance Observer API bu jarayonni inqilob qiladi, chunki u ishlash samaradorligi hodisalariga ular sodir bo'lishi bilan obuna bo'lish uchun asinxron, kam yuklamali mexanizmni taqdim etadi. Ushbu qo'llanma sizni ushbu muhim API bilan chuqur tanishtiradi, Core Web Vitals'ni kuzatish, muammoli joylarni aniqlash va natijada global auditoriya uchun tezroq, yoqimliroq veb-tajribalar yaratish uchun uning kuchidan qanday foydalanishni ko'rsatadi.
Performance Observer API nima?
Mohiyatan, Performance Observer API ishlash samaradorligini o'lchash hodisalarini, ya'ni ishlash yozuvlari (performance entries) deb nomlanuvchi voqealarni kuzatish va yig'ish usulini ta'minlaydigan interfeysdir. Uni brauzer ichidagi ishlash samaradorligi bilan bog'liq faoliyatlar uchun maxsus tinglovchi (listener) deb tasavvur qiling. Siz brauzerdan faol ravishda "Hali biror narsa sodir bo'ldimi?" deb so'rash o'rniga, brauzer sizga proaktiv tarzda: "Yangi ishlash samaradorligi hodisasi yuz berdi! Mana tafsilotlar", deb aytadi.
Bunga kuzatuvchi (observer) namunasi orqali erishiladi. Siz kuzatuvchi obyektini yaratasiz, unga qanday turdagi ishlash samaradorligi hodisalari bilan qiziqayotganingizni (masalan, katta chizilishlar, foydalanuvchi kiritishlari, maket siljishlari) aytasiz va qayta chaqiruv (callback) funksiyasini taqdim etasiz. Brauzerning ishlash samaradorligi vaqt jadvalida (timeline) belgilangan turdagi yangi hodisa qayd etilganda, sizning qayta chaqiruv funksiyangiz yangi yozuvlar ro'yxati bilan chaqiriladi. Ushbu asinxron, "push" asosidagi model performance.getEntries()'ni qayta-qayta chaqiradigan eski "pull" asosidagi modeldan ancha samaraliroq va ishonchliroqdir.
Eski usul va Yangi usul
Performance Observer'ning yangiligini qadrlash uchun, keling, ikkala yondashuvni taqqoslaymiz:
- Eski usul (So'rov orqali): Siz o'z metrikangiz yozilganligini tekshirish uchun performance.getEntriesByName('my-metric')'ni davriy ravishda chaqirish uchun setTimeout yoki requestAnimationFrame'dan foydalanishingiz mumkin. Bu muammoli, chunki siz juda kech tekshirib, hodisani o'tkazib yuborishingiz yoki juda tez-tez tekshirib, protsessor sikllarini isrof qilishingiz mumkin. Shuningdek, yozuvlarni muntazam tozalab turmasangiz, brauzerning ishlash samaradorligi buferini to'ldirib yuborish xavfi bor.
- Yangi usul (Kuzatish): Siz bir marta PerformanceObserver'ni sozlab qo'yasiz. U orqa fonda jim ishlab, minimal resurslarni sarflaydi. Tegishli ishlash samaradorligi yozuvi qayd etilishi bilanoq — xoh u sahifa yuklanganidan bir millisekund o'tib, xoh foydalanuvchi sessiyasining o'ninchi daqiqasida bo'lsin — sizning kodingiz darhol xabardor qilinadi. Bu sizning hech qachon hodisani o'tkazib yubormasligingizni va monitoring kodingiz iloji boricha samarali bo'lishini ta'minlaydi.
Nima uchun Performance Observer'dan foydalanish kerak?
Performance Observer API'ni dasturlash ish jarayoningizga integratsiya qilish global miqyosga intilayotgan zamonaviy veb-ilovalar uchun muhim bo'lgan ko'plab afzalliklarni taqdim etadi.
- Xalal bermaydigan monitoring: Kuzatuvchining qayta chaqiruv funksiyasi odatda bo'sh vaqtlarda ishga tushiriladi, bu esa ishlash samaradorligini kuzatuvchi kodingiz foydalanuvchi tajribasiga xalaqit bermasligini yoki asosiy thread'ni bloklamasligini ta'minlaydi. U yengil va deyarli sezilmaydigan ishlash iziga ega bo'lishi uchun ishlab chiqilgan.
- To'liq real vaqtdagi ma'lumotlar: Veb dinamikdir. Ishlash samaradorligi muammolari faqat yuklanish vaqtida sodir bo'lmaydi. Foydalanuvchi murakkab animatsiyani ishga tushirishi, varaqlash orqali ko'proq kontent yuklashi yoki sahifa dastlab o'rnatilgandan ancha keyin og'ir komponent bilan o'zaro aloqada bo'lishi mumkin. Performance Observer ushbu real vaqtdagi hodisalarni qayd etib, sizga butun foydalanuvchi sessiyasining to'liq manzarasini taqdim etadi.
- Kelajakka mo'ljallangan va standartlashtirilgan: Bu W3C tomonidan ishlash samaradorligi ma'lumotlarini to'plash uchun tavsiya etilgan standartdir. Yangi ishlash samaradorligi metrikalari va API'lar u bilan integratsiya qilish uchun mo'ljallangan, bu esa uni loyihalaringiz uchun barqaror va istiqbolli tanlovga aylantiradi.
- Haqiqiy Foydalanuvchi Monitoringi (RUM) Asosi: Saytingiz turli mamlakatlar, qurilmalar va tarmoq sharoitlaridagi foydalanuvchilar uchun qanday ishlashini chinakam tushunish uchun sizga haqiqiy sessiyalardan olingan ma'lumotlar kerak. Performance Observer mustahkam RUM yechimini yaratish uchun ideal vosita bo'lib, u sizga hayotiy muhim metrikalarni to'plash va ularni yig'ish va tahlil qilish uchun analitika xizmatiga yuborish imkonini beradi.
- Poyga holatlarini (Race Conditions) yo'q qiladi: So'rov orqali ishlaganda, siz ishlash samaradorligi yozuviga u qayd etilishidan oldin kirishga harakat qilishingiz mumkin. Kuzatuvchi modeli bu poyga holatini butunlay yo'q qiladi, chunki sizning kodingiz faqat yozuv mavjud bo'lgandan keyin ishlaydi.
Boshlash: Performance Observer asoslari
API'dan foydalanish juda oddiy. Jarayon uchta asosiy bosqichni o'z ichiga oladi: kuzatuvchi yaratish, qayta chaqiruv funksiyasini aniqlash va kuzatuvchiga nimalarni kuzatish kerakligini aytish.
1. Qayta chaqiruv funksiyasi bilan kuzatuvchi yaratish
Birinchidan, siz PerformanceObserver obyektini yaratasiz va unga qayta chaqiruv funksiyasini uzatasiz. Bu funksiya yangi yozuvlar aniqlanganda ishga tushiriladi.
const observer = new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { console.log('Yozuv turi:', entry.entryType); console.log('Yozuv nomi:', entry.name); console.log('Boshlanish vaqti:', entry.startTime); console.log('Davomiyligi:', entry.duration); } });
Qayta chaqiruv funksiyasi PerformanceObserverEntryList obyektini qabul qiladi. Siz yangi kuzatilgan barcha ishlash samaradorligi yozuvlari massivini olish uchun ushbu ro'yxatda getEntries() metodini chaqirishingiz mumkin.
2. Muayyan yozuv turlarini kuzatish
Kuzatuvchi unga nima kuzatish kerakligini aytmaguningizcha hech narsa qilmaydi. Buni .observe() metodi yordamida amalga oshirasiz. Bu metod entryTypes xususiyatiga ega (yoki ba'zi zamonaviy holatlarda bitta tur uchun shunchaki type) obyektni qabul qiladi, bu sizni qiziqtirgan ishlash samaradorligi yozuv turlarini ifodalovchi satrlar massividir.
// Ikki turdagi yozuvlarni kuzatishni boshlash observer.observe({ entryTypes: ['mark', 'measure'] });
Eng keng tarqalgan yozuv turlaridan ba'zilari:
- 'resource': Skriptlar, rasmlar va uslublar jadvallari kabi resurslar uchun tarmoq so'rovlari haqida ma'lumotlar.
- 'paint': first-paint va first-contentful-paint uchun vaqt o'lchovlari.
- 'largest-contentful-paint': Idrok etilgan yuklanish tezligi uchun Core Web Vital metrikasi.
- 'layout-shift': Vizual barqarorlik uchun Core Web Vital metrikasi.
- 'first-input': First Input Delay Core Web Vital uchun ishlatiladigan birinchi foydalanuvchi o'zaro ta'siri haqida ma'lumot.
- 'longtask': Asosiy thread'da 50 millisekunddan uzoqroq davom etadigan vazifalarni aniqlaydi, bu esa javob bermaslikka olib kelishi mumkin.
- 'mark' & 'measure': User Timing API yordamida o'z kodingizda siz belgilaydigan maxsus belgilar va o'lchovlar.
3. Kuzatuvchini to'xtatish
Ma'lumotlarni yig'ishga endi ehtiyoj qolmaganda, resurslarni bo'shatish uchun kuzatuvchini uzib qo'yish yaxshi amaliyotdir.
observer.disconnect();
Amaliy qo'llanilishlar: Core Web Vitals'ni kuzatish
Core Web Vitals Google tomonidan veb-sahifaning umumiy foydalanuvchi tajribasida muhim deb hisoblanadigan maxsus omillar to'plamidir. Ularni kuzatish Performance Observer API'ning eng kuchli qo'llanilishlaridan biridir. Keling, har birini qanday o'lchashni ko'rib chiqamiz.
Eng Katta Kontentning Chizilishini (LCP) kuzatish
LCP yuklanish samaradorligini o'lchaydi. U sahifa yuklanishi vaqt jadvalida asosiy kontent yuklangan bo'lishi ehtimolini belgilaydi. Yaxshi LCP ko'rsatkichi 2,5 soniya yoki undan kam.
LCP elementi sahifa yuklanishi bilan o'zgarishi mumkin. Dastlab, sarlavha LCP elementi bo'lishi mumkin, ammo keyinroq kattaroq rasm yuklanib, yangi LCP elementiga aylanishi mumkin. Shuning uchun Performance Observer mukammal yechimdir — u har bir potentsial LCP nomzodi render qilinganda sizni xabardor qiladi.
// LCP'ni kuzatish va yakuniy qiymatni jurnalga yozish let lcpValue = 0; const lcpObserver = new PerformanceObserver((entryList) => { const entries = entryList.getEntries(); // Oxirgi yozuv eng so'nggi LCP nomzodidir const lastEntry = entries[entries.length - 1]; lcpValue = lastEntry.startTime; console.log(`LCP yangilandi: ${lcpValue.toFixed(2)}ms`, lastEntry.element); }); lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true }); // Foydalanuvchi o'zaro ta'sirga kirishgandan so'ng kuzatuvchini uzib qo'yish yaxshi amaliyot, // chunki o'zaro ta'sirlar yangi LCP nomzodlarining yuborilishini to'xtatishi mumkin. // window.addEventListener('beforeunload', () => lcpObserver.disconnect());
buffered: true dan foydalanilganiga e'tibor bering. Bu kuzatuvchiga observe() metodi chaqirilishidan *oldin* qayd etilgan yozuvlarni kiritishni buyuradigan juda muhim parametrdir. Bu sizga erta LCP hodisasini o'tkazib yuborishdan saqlaydi.
Birinchi Kirishning Kechikishi (FID) va Keyingi Chizilishgacha O'zaro Ta'sir (INP) ni kuzatish
Ushbu metrikalar interaktivlikni o'lchaydi. Ular foydalanuvchining sahifa bilan birinchi marta o'zaro aloqaga kirishish tajribasini miqdoriy baholaydi.
Birinchi Kirishning Kechikishi (FID) foydalanuvchi sahifa bilan birinchi marta o'zaro aloqaga kirishgan paytdan (masalan, tugmani bosish) brauzer ushbu o'zaro ta'sirga javoban hodisalarni qayta ishlashni boshlay oladigan vaqtgacha bo'lgan vaqtni o'lchaydi. Yaxshi FID 100 millisekund yoki undan kam.
Keyingi Chizilishgacha O'zaro Ta'sir (INP) bu 2024 yil mart oyida FID o'rnini Core Web Vital sifatida egallagan yangiroq, kengroq qamrovli metrikadir. FID faqat *birinchi* o'zaro ta'sirning *kechikishini* o'lchasa, INP sahifa hayoti davomida *barcha* foydalanuvchi o'zaro ta'sirlarining *umumiy kechikishini* baholaydi va eng yomonini xabar qiladi. Bu umumiy javob berish qobiliyatining yaxshiroq manzarasini beradi. Yaxshi INP 200 millisekund yoki undan kam.
Siz 'first-input' yozuv turi yordamida FID'ni kuzatishingiz mumkin:
// FID'ni kuzatish const fidObserver = new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { const fid = entry.processingStart - entry.startTime; console.log(`FID: ${fid.toFixed(2)}ms`); // Birinchi kiritish xabar qilingandan so'ng uzib qo'yish fidObserver.disconnect(); } }); fidObserver.observe({ type: 'first-input', buffered: true });
INP'ni kuzatish biroz murakkabroq, chunki u hodisaning to'liq davomiyligini ko'rib chiqadi. Siz 'event' yozuv turini kuzatasiz va davomiylikni hisoblaysiz, eng uzog'ini yozib borasiz.
// Soddalashtirilgan INP monitoringi namunasi let worstInp = 0; const inpObserver = new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { // INP bu hodisaning davomiyligidir const inp = entry.duration; // Bizni faqat hozirgi eng yomondan uzoqroq davom etgan o'zaro ta'sirlar qiziqtiradi if (inp > worstInp) { worstInp = inp; console.log(`Yangi eng yomon INP: ${worstInp.toFixed(2)}ms`); } } }); inpObserver.observe({ type: 'event', durationThreshold: 16, buffered: true }); // durationThreshold juda qisqa, ehtimol ahamiyatsiz hodisalarni filtrlashga yordam beradi.
Kumulyativ Maket Siljishini (CLS) kuzatish
CLS vizual barqarorlikni o'lchaydi. U foydalanuvchilar kutilmagan maket siljishlarini qanchalik tez-tez boshdan kechirishini miqdoriy baholashga yordam beradi — bu kontent sahifada ogohlantirishsiz harakatlanadigan asabiy tajribadir. Yaxshi CLS ko'rsatkichi 0,1 yoki undan kam.
Ko'rsatkich barcha individual maket siljishlari ko'rsatkichlarining yig'indisidir. Bu yerda Performance Observer juda muhim, chunki u har bir siljish sodir bo'lishi bilan xabar beradi.
// Umumiy CLS ko'rsatkichini kuzatish va hisoblash let clsScore = 0; const clsObserver = new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { // Biz foydalanuvchi kiritishi sabab bo'lgan siljishlarni hisobga olishni xohlamaymiz if (!entry.hadRecentInput) { clsScore += entry.value; console.log(`Joriy CLS ko'rsatkichi: ${clsScore.toFixed(4)}`); } } }); clsObserver.observe({ type: 'layout-shift', buffered: true });
hadRecentInput xususiyati muhim. U sizga foydalanuvchi harakatiga (masalan, menyuni kengaytiradigan tugmani bosish) javoban sodir bo'ladigan qonuniy maket siljishlarini filtrlashga yordam beradi, bu esa CLS ko'rsatkichiga qo'shilmasligi kerak.
Core Web Vitals'dan tashqari: Boshqa kuchli yozuv turlari
Core Web Vitals ajoyib boshlanish nuqtasi bo'lsa-da, Performance Observer ancha ko'p narsani kuzata oladi. Mana bir nechta boshqa nihoyatda foydali yozuv turlari.
Uzoq Vazifalarni kuzatish (`longtask`)
Long Tasks API asosiy thread'ni 50 millisekund yoki undan ko'proq band qiladigan vazifalarni ochib beradi. Bular muammoli, chunki asosiy thread band bo'lganda, sahifa foydalanuvchi kiritishiga javob bera olmaydi, bu esa sust yoki muzlab qolgan tajribaga olib keladi. Ushbu vazifalarni aniqlash INP'ni yaxshilashning kalitidir.
// Uzoq vazifalarni kuzatish const longTaskObserver = new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { console.log(`Uzoq Vazifa Aniqlndi: ${entry.duration.toFixed(2)}ms`); // 'attribution' xususiyati ba'zan uzoq vazifaga nima sabab bo'lganini aytib berishi mumkin console.log('Attribution:', entry.attribution); } }); longTaskObserver.observe({ type: 'longtask', buffered: true });
Resurs vaqtlarini tahlil qilish (`resource`)
Resurslaringiz qanday yuklanayotganini tushunish ishlash samaradorligini sozlashning asosidir. 'resource' yozuv turi sizga sahifangizdagi har bir resurs uchun, shu jumladan DNS qidiruvi, TCP ulanishi va kontentni yuklab olish vaqtlari kabi batafsil tarmoq vaqtlari ma'lumotlarini beradi.
// Resurs vaqtlarini kuzatish const resourceObserver = new PerformanceObserver((entryList) => { for (const entry of entryList.getEntries()) { // Keling, sekin yuklanayotgan rasmlarni topamiz if (entry.initiatorType === 'img' && entry.duration > 500) { console.warn(`Sekin rasm aniqlandi: ${entry.name}`, `Davomiyligi: ${entry.duration.toFixed(2)}ms`); } } }); // 'buffered: true' dan foydalanish resurs vaqtlari uchun deyarli har doim zarur // bu skript ishga tushishidan oldin yuklangan resurslarni ushlash uchun. resourceObserver.observe({ type: 'resource', buffered: true });
Maxsus ishlash belgilarini o'lchash (`mark` va `measure`)
Ba'zan, siz ilovaga xos mantiqning ishlash samaradorligini o'lchashingiz kerak bo'ladi. User Timing API sizga maxsus vaqt belgilarini yaratish va ular orasidagi davomiylikni o'lchash imkonini beradi.
- performance.mark('start-operation'): 'start-operation' nomli vaqt belgisini yaratadi.
- performance.mark('end-operation'): Yana bir vaqt belgisini yaratadi.
- performance.measure('my-operation', 'start-operation', 'end-operation'): Ikki belgi o'rtasida o'lchov yaratadi.
Performance Observer ushbu maxsus 'mark' va 'measure' yozuvlarini tinglashi mumkin, bu JavaScript freymvorkidagi komponentlarning render vaqtlari yoki muhim API chaqiruvi va keyingi ma'lumotlarni qayta ishlash davomiyligi kabi narsalar bo'yicha vaqt ma'lumotlarini to'plash uchun juda mos keladi.
// Ilovangiz kodida: performance.mark('start-data-processing'); // ... murakkab ma'lumotlarni qayta ishlash ... performance.mark('end-data-processing'); performance.measure('data-processing-duration', 'start-data-processing', 'end-data-processing'); // Monitoring skriptingizda: const customObserver = new PerformanceObserver((entryList) => { for (const entry of entryList.getEntriesByName('data-processing-duration')) { console.log(`Maxsus o'lchov '${entry.name}': ${entry.duration.toFixed(2)}ms`); } }); customObserver.observe({ entryTypes: ['measure'] });
Ilg'or konsepsiyalar va eng yaxshi amaliyotlar
Performance Observer API'ni professional production muhitida samarali ishlatish uchun ushbu eng yaxshi amaliyotlarni hisobga oling.
- Har doim `buffered: true` ni hisobga oling: Sahifa yuklanishining boshida sodir bo'lishi mumkin bo'lgan yozuv turlari ('resource', 'paint', yoki 'largest-contentful-paint' kabi) uchun buferlangan bayroqdan foydalanish ularni o'tkazib yubormaslik uchun zarur.
- Brauzer qo'llab-quvvatlashini tekshiring: Zamonaviy brauzerlarda keng qo'llab-quvvatlansa-da, uni ishlatishdan oldin uning mavjudligini tekshirish har doim oqilona. Shuningdek, ma'lum bir brauzer tomonidan qaysi yozuv turlari qo'llab-quvvatlanishini tekshirishingiz mumkin.
- if ('PerformanceObserver' in window && PerformanceObserver.supportedEntryTypes.includes('longtask')) { // Uzoq vazifalar uchun PerformanceObserver'dan foydalanish xavfsiz }
- Ma'lumotlarni analitika xizmatiga yuboring: Ma'lumotlarni konsolga chiqarish ishlab chiqish uchun ajoyib, ammo haqiqiy dunyo monitoringi uchun siz bu ma'lumotlarni yig'ishingiz kerak. Mijozdan ushbu telemetriyani yuborishning eng yaxshi usuli navigator.sendBeacon() API'sidan foydalanishdir. Bu serverga oz miqdordagi ma'lumotlarni yuborish uchun mo'ljallangan bloklamaydigan mexanizm va u sahifa yopilayotganda ham ishonchli ishlaydi.
- Kuzatuvchilarni vazifalariga ko'ra guruhlang: Bir nechta yozuv turlari uchun bitta kuzatuvchidan foydalanish mumkin bo'lsa-da, ko'pincha turli vazifalar uchun alohida kuzatuvchilar yaratish toza yechimdir (masalan, biri Core Web Vitals uchun, biri resurs vaqtlari uchun, biri maxsus metrikalar uchun). Bu kodning o'qilishi va saqlanishini yaxshilaydi.
- Ishlash samaradorligiga ta'sirini tushuning: API juda kam yuklamali bo'lishi uchun ishlab chiqilgan. Biroq, og'ir hisob-kitoblarni bajaradigan juda murakkab qayta chaqiruv funksiyasi potentsial ravishda ishlash samaradorligiga ta'sir qilishi mumkin. Kuzatuvchi qayta chaqiruvlaringizni yengil va samarali saqlang. Har qanday og'ir ishlov berishni web worker'ga o'tkazing yoki xom ma'lumotlarni backend'ga yuborib, u yerda qayta ishlang.
Xulosa: Ishlash samaradorligini birinchi o'ringa qo'yadigan madaniyatni shakllantirish
Performance Observer API shunchaki yana bir vosita emas; bu veb ishlash samaradorligiga yondashuvimizdagi fundamental o'zgarishdir. U bizni reaktiv, bir martalik o'lchovlardan butun dunyodagi foydalanuvchilarimizning haqiqiy, dinamik tajribasini aks ettiruvchi proaktiv, uzluksiz monitoringga o'tkazadi. Core Web Vitals, uzoq vazifalar, resurs vaqtlari va maxsus metrikalarni qayd etishning ishonchli va samarali usulini taqdim etish orqali u dasturchilarga ishlash samaradorligidagi muammoli joylarni ko'p sonli foydalanuvchilarga ta'sir qilishidan oldin aniqlash va hal qilish imkoniyatini beradi.
Performance Observer API'ni qabul qilish har qanday dasturlash jamoasida ishlash samaradorligini birinchi o'ringa qo'yadigan madaniyatni shakllantirish yo'lidagi muhim qadamdir. Muhim narsani o'lchay olganingizda, muhim narsani yaxshilay olasiz. Bugundan boshlab ushbu kuzatuvchilarni loyihalaringizga integratsiya qilishni boshlang. Foydalanuvchilaringiz — dunyoning qayerida bo'lishmasin — sizga tezroq, silliqroq va yoqimliroq tajriba uchun minnatdorchilik bildirishadi.