Pengukuran pengoptimalan kinerja Pemrograman yang lebih baik

Programming

[ad_1]
Halo Gaes di suratpembaca.web.id. Malam ini kita akan membicarakan tentang Linux yakni Pengukuran pengoptimalan kinerja Pemrograman yang lebih baik

.

Semoga artikel tentang Pengukuran pengoptimalan kinerja Pemrograman yang lebih baik

dapat memberikan manfaat untuk Sahabat semua. Yuk baca artikel ini
sampai tuntas.

Selalu ambil langkah-langkah untuk mencegah sistem crash

Dalam posting saya sebelumnya, saya menjelaskan dua jenis optimasi kinerja: optimasi makro dan mikro dan 6 langkah yang diperlukan untuk meningkatkan kinerja. Langkah kunci dalam proses ini adalah untuk mencegah penurunan kinerja di masa mendatang. Dalam posting ini, kita akan melihat langkah penting ini.

Berapa kali Anda melihat peningkatan kinerja yang signifikan, dan berbulan-bulan atau bertahun-tahun kemudian, kinerja lebih buruk daripada sebelum pengoptimalan?

Contoh: Tim memperbaiki sistem dengan menerapkan sistem cache baru. Tim meningkatkan latensi rata-rata dari 40 milidetik menjadi 20 milidetik dan menambahkan dasbor yang hebat. Dua tahun kemudian, penundaannya adalah 50 milidetik. Apa yang bisa mencegah hal ini terjadi? Apakah tim tahu bahwa kinerjanya lebih buruk daripada dua tahun lalu? Apakah mereka menyadari koreksi yang telah ditambahkan? Mungkin tidak. Tim ini bisa menjadi tim yang sama sekali baru, atau lebih buruk lagi, tidak ada pemilik untuk area itu.

Nah, ini adalah topik yang luas. Sebagai pengembang, kami perlu memastikan bahwa kami tidak mengambil langkah-langkah untuk mengurangi kinerja. Dalam posting ini, Anda akan belajar tentang langkah-langkah yang dapat kita ambil untuk mencegah hal ini. Saya akan menggunakan contoh di Ruby, tetapi hal yang sama berlaku untuk sebagian besar bahasa.

Pengembang perlu mengetahui seberapa cepat area / perangkat lunak (latency) dan berapa banyak lalu lintas yang dapat didukungnya (output). Ini mungkin memerlukan program pemantauan seperti Datadog, Rollbar, Splunk atau Sentry.

Gambar 1. Contoh dasbor Datadog untuk latensi API produk.

Gambar sebelumnya menunjukkan dasbor Datadog untuk menunda API proyek pribadi p50 Dan hal 95. Ingatlah untuk tidak pernah menggunakan rata-rata. Gunakan persentil

Dasbor sangat penting tetapi menjadi lebih berharga dengan monitor. Memberi tahu pengembang saat kinerja melebihi ambang batas atau saat ada anomali. Itu dapat memperingatkan pengembang melalui email atau api, seperti pada contoh berikut:

Gambar 2. Peringatan Datadog dikirim ke instance Slack.

Tambahkan garis dasar ke semua dasbor Sehingga developer mengetahui delay window yang diharapkan.

Setiap perubahan optimasi kinerja harus memiliki tes. Untuk mengilustrasikannya, mari kita lihat beberapa perubahan kinerja paling umum dan tindakan yang dapat kita lakukan untuk mencegah penurunan kinerja:

Perubahan kinerja: Mengurangi alokasi objek dari fungsi hot path.

uji: Tambahkan tes yang menghitung alokasi fungsi objek dan bandingkan dengan ambang batas. Banyak perpustakaan menawarkan sumbangan percobaan.

Contoh fungsi Memori_tugas Yang mengklaim jumlah alokasi di bawah ambang batas.

Perubahan kinerja: Mengurangi jumlah kueri basis data yang dieksekusi.

uji: Tambahkan tes yang mengonfirmasi jumlah kueri yang diharapkan atau kueri itu sendiri (hati-hati dengan tes lembar!)

Contoh fungsi yang mewakili jumlah kueri basis data yang dieksekusi.

Perubahan kinerja: Gunakan kueri basis data yang lebih baik (misalnya, tambahkan petunjuk direktori basis data).

uji: Tambahkan tes yang mengonfirmasi kueri jalankan.

Contoh tes yang memverifikasi referensi database MySQL digunakan.

Perubahan kinerja: Mengurangi jumlah panggilan cache dengan mengkategorikan kueri

uji: Tambahkan tes untuk membuktikan bahwa cache dipanggil dengan beberapa kunci dalam satu cache panggilan.

Contoh fungsi yang mengeksekusi panggilan cache fetch_multi alih-alih pengambilan tunggal.

Perubahan kinerja: Mengurangi jumlah kueri basis data dengan memperkenalkan cache.

Tes: Tambahkan tes untuk membuktikan ketika ada hit dan / atau kerugian tersembunyi.

Contoh fungsi yang menggunakan cache alih-alih database relasional

Perubahan kinerja: Jangan menghalangi subjek utama dengan menekan beban pada tugas latar belakang.

uji: Tambahkan satu tes untuk memeriksa apakah tugas ada dalam antrean.

Perubahan kinerja: Mengurangi ukuran paket depan:

uji: Tambahkan alat yang mengukur ukuran paket, dan tambahkan eksperimen yang gagal saat ukurannya lebih besar dari garis dasar.

Periksa Ukuran Bundel di Github menggunakan Perpustakaan Bundlesize.

Perubahan kinerja: (Depan) Mengurangi pemuatan halaman dengan lebih sedikit data / pemuatan UI dan rujukan kueri:

uji: Tambahkan pengujian unit untuk memeriksa data dan objek di DOM yang dimuat.

Perubahan kinerja: Peningkatan throughput dengan menambahkan lebih banyak cache:

uji: Lakukan stress test secara berkala dan pastikan angkanya sesuai dengan baseline yang ditentukan.

Selalu ambil langkah-langkah untuk mencegah sistem crash. Pastikan Anda memiliki dasbor dengan kinerja yang diharapkan dan alat yang tepat dan tambahkan tes.

Menerapkan strategi ini menghemat waktu Anda dan memastikan bahwa sasaran kinerja terpenuhi selamanya atau bahwa baseline ditetapkan dengan tepat. Jika tidak ada alat dan ukuran untuk mencegah penurunan kinerja, peningkatan kinerja tidak lengkap.

terimakasih untuk Alex Watt Dan Sidant Bajaj Untuk memeriksa posting ini

Itu tadi pembahasan mengenai Pengukuran pengoptimalan kinerja Pemrograman yang lebih baik

, terimakasih sudah berkunjung di website saya, semoga artikelnya ada manfaatnya ya.

[ad_2]

Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.