Seri Pengoptimalan Kinerja iOS 06|Cara yang benar dalam menggunakan Instrumen
Alatnya sendiri tidak sulit. Yang sulit adalah mengajukan pertanyaan yang jelas, daripada melihat sekumpulan gambar dan tidak menghasilkan kesimpulan.
Ketika saya pertama kali mengenal Instrumen, pengalamannya sangat mirip:
- Buka alat
- Rekam segmen
- Melihat banyak kurva dan garis waktu
- Saya pikir ada banyak informasi
- Tapi pada akhirnya saya masih tidak tahu apa masalahnya.
Di permukaan, ini sepertinya Instrumen terlalu sulit, namun sebenarnya lebih mendekati situasi umum ketika Anda memasukinya dengan pertanyaan yang sangat samar.
Penggunaan Instrumen yang benar-benar efisien adalah:
Ajukan pertanyaan yang cukup spesifik dan biarkan alat membantu mempersempitnya.
1. Instrumen paling takut dianggap sebagai “pemindai universal”
Ketika banyak tim mengalami masalah kinerja, mereka akan berkata:
- Buka Instrumen dan lihatlah
Kalimat ini sendiri benar, tetapi tanpa bagian kedua:
- Apa sebenarnya yang ingin kamu lihat?
- Hipotesis apa yang ingin Anda uji?
- Apakah saat ini lebih disebabkan oleh masalah CPU, memori, atau thread utama?
Instrumen tersebut dapat dengan mudah menjadi “penguat informasi”:
- Banyak informasi
- Banyak gambar
- Banyak garis
- tapi tidak ada kesimpulan yang jelas
Jadi saya lebih suka menganggapnya sebagai “alat validasi dan penyempitan” daripada “pemindai yang secara otomatis memberikan jawaban”.
2. Jika ada masalah terlebih dahulu, maka pilih halaman alat, bukan sebaliknya.
Urutan yang lebih efisien biasanya:
- Tentukan terlebih dahulu jenis permasalahan yang lebih seperti apa.
- Putuskan jenis Instrumen yang akan dibuka
Misalnya:
- Startup lambat: lebih memperhatikan distribusi waktu fase startup
- Kartu daftar: lebih memperhatikan masalah terkait thread dan frame utama
- Memori tinggi: lebih memperhatikan objek dan tren perubahan memori
- Pemanasan dan konsumsi daya: lebih memperhatikan aktivitas CPU jangka panjang dan tugas latar belakang
Jika masalahnya belum terklasifikasi, langsung saja buka alatnya. Sangat mudah untuk melihat segala sesuatu sebagai masalah, dan pada akhirnya tidak ada yang bisa dikatakan secara akurat.
3. Instrumen tidak memiliki manfaat saat digunakan. Di permukaan, sepertinya tidak bisa diklik, namun nyatanya lebih dekat ke jalur “fenomena → hipotesis → verifikasi”.
Yang lebih sering saya gunakan adalah:
1. Catat fenomenanya terlebih dahulu
Misalnya:
- Keterlambatan yang jelas saat menggulir daftar dengan cepat
- Butuh waktu lama untuk mengklik layar pertama beranda
- Memori semakin tinggi setelah halaman tertentu dimasukkan kembali beberapa kali.
2. Buatlah hipotesis tentatif lainnya
Misalnya:
- Mungkin thread utama ditempati oleh perhitungan ulang
- Mungkin terlalu banyak pekerjaan yang dilakukan pada jalur kritis layar pertama
- Mungkin objeknya tidak dirilis atau cache tidak didaur ulang
3. Gunakan Instrumen untuk memverifikasi hipotesis ini
Dengan cara ini, saat Anda melihat gambarnya, Anda tidak hanya “menonton keseruannya”, tetapi menjawab pertanyaan spesifik.
4. Nilai terbesar dari Instrumen adalah untuk mengetahui “di lapisan mana permasalahannya berada”
Ini sangat penting.
Apa yang paling diperlukan pada tahap awal dari banyak masalah kinerja adalah mengetahui terlebih dahulu:
- Terutama masalah CPU
- Atau ini masalah thread utama?
- Atau apakah ini masalah tren memori?
- Masih ada masalah dengan link startup?
Setelah penilaian level benar, penggalian selanjutnya akan lebih mudah. Jadi saya tidak berharap Instrumen memberi saya “jawaban akhir” secara langsung pada kali pertama. Saya berharap ini dapat membantu saya mempersempit cakupannya secara signifikan.
5. Kesalahpahaman umum: hanya fokus pada nilai, bukan jalur operasi
Setelah merekam, beberapa orang akan memberikan perhatian khusus pada:
- Apakah angka tertentu tinggi?
- Apakah puncak tertentu indah?
Angka-angka ini tentu patut untuk dicermati, namun angka-angka itu sendiri dapat dengan mudah kehilangan konteks jika diambil di luar konteks.
Misalnya, Anda juga harus mengetahui:
- Operasi apa yang terjadi setelah puncak ini?
- Apakah ini awal yang dingin, gulir, pemotongan halaman, atau kembali ke latar depan?
- Apa sebenarnya yang dilakukan pengguna saat masalah terjadi?
Karena masalah kinerja bukanlah masalah statis, masalah tersebut selalu terikat pada jalur tertentu.
6. Metode mental yang mendekati pertarungan sebenarnya
Jika saya merangkumnya dengan kata-kata sederhana, saya akan mengatakan:
- Jangan hanya datang dan melihat semuanya.
- Putuskan dulu apa yang perlu diverifikasi
- Pertama temukan “di mana letak masalah utamanya”
- Lalu gali lebih dalam pada level itu
Artinya, Instrumen lebih seperti:
- kaca pembesar
- Pencari lokasi
Daripada asisten pintar yang “secara otomatis akan memberitahukan akar permasalahan saat Anda membukanya”.
7. Kesimpulan: Jika Anda tahu cara menggunakan Instrumen, Anda akan menjawab pertanyaan.
Singkatnya, saya akan mengatakan:
Premis bahwa Instrumen benar-benar berguna adalah dengan membahas masalah yang cukup spesifik dan membiarkan alat tersebut membantu memverifikasi atau mempersempit masalah.
Setelah Anda melakukan urutan ini dengan benar, ini bisa menjadi sangat berharga; Jika urutannya salah, bisa dengan mudah menjadi “melihat banyak gambar, tapi pada akhirnya tidak ada yang turun”.
What to read next
Want more posts about iOS Performance Optimization?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #iOS?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home