1000 queries x 1 ms VS 1 query x 1000 ms
Fokus pada masalah yang paling signifikan (major bottleneck) untuk mendapatkan dampak perbaikan yang terbesar
Seringkali, penyebab utama dari suatu masalah kinerja bukanlah karena banyak hal kecil yang salah, melainkan karena ada satu atau dua hal besar yang sangat tidak efisien.
Bayangkan Anda memiliki sebuah sistem yang menangani permintaan (queries) dari pengguna.
1000 queries x 1 ms = 1 detik
Ini menunjukkan ada 1000 permintaan yang sangat cepat. Setiap permintaan hanya membutuhkan 1 milidetik (ms) untuk diselesaikan. Secara total, 1000 permintaan ini menghabiskan waktu 1 detik.
1 query x 1000 ms = 1 detik
Ini menunjukkan hanya ada 1 permintaan, tetapi permintaan ini sangat lambat. Permintaan ini membutuhkan waktu 1000 ms, atau 1 detik, untuk diselesaikan.
Maksud di Balik Angka
Pernyataan tersebut mengatakan bahwa masing-masing baris mewakili 50% dari total waktu yang dihabiskan.
Total waktu yang dihabiskan adalah 1 detik (dari 1000 query cepat) + 1 detik (dari 1 query lambat) = 2 detik.
Waktu yang dihabiskan oleh 1000 query cepat adalah 1 detik, atau 50% dari total waktu (2 detik).
Waktu yang dihabiskan oleh 1 query lambat adalah 1 detik, atau 50% dari total waktu (2 detik).
Jadi, dari total 1001 permintaan (1000 permintaan cepat + 1 permintaan lambat), satu-satunya permintaan yang lambat ini menyebabkan setengah dari seluruh beban sistem.
Intuisi yang Ingin Disampaikan
Intuisinya adalah Prinsip Pareto atau aturan 80/20 yang sering diterapkan dalam optimasi. Intinya:
Sebagian besar dampak (80%) sering kali disebabkan oleh sebagian kecil penyebab (20%).
Dalam contoh ini:
1 dari 1001 permintaan (kurang dari 0,1% dari total permintaan) adalah penyebab utama (50%) dari beban sistem.
Jika Anda bisa mengidentifikasi dan menghapus atau memperbaiki satu permintaan yang lambat ini, Anda dapat mengurangi beban sistem secara drastis hingga 50%. Ini jauh lebih efisien daripada mencoba mempercepat setiap dari 1000 permintaan yang sudah cepat, yang mungkin hanya akan memberikan sedikit perbaikan kecil.
Jadi, pesan utamanya adalah: Fokus pada masalah yang paling signifikan (major bottleneck) untuk mendapatkan dampak perbaikan yang terbesar.
Last updated