Tips Mengoptimalkan Performa Kode Java – Saat mengerjakan aplikasi Java apa pun, kami menemukan konsep pengoptimalan. Perlu bahwa kode yang kita tulis tidak hanya bersih, dan tanpa cacat tetapi juga dioptimalkan yaitu waktu yang dibutuhkan oleh kode untuk dieksekusi harus dalam batas yang diinginkan. Untuk mencapai ini, kita perlu mengacu pada standar pengkodean Java dan meninjau kode kita untuk memastikannya sesuai dengan standar.
Tips Mengoptimalkan Performa Kode Java
freeprogrammingresources – Namun terkadang kami tidak memiliki waktu untuk benar-benar meninjau kode karena kendala tenggat waktu. Dalam kasus seperti itu, kami memberikan beberapa tip yang dapat diingat pengembang saat melakukan pengkodean persyaratan apa pun sehingga dia perlu membuat perubahan minimal pada kode untuk memperbaiki kinerja selama fase pengujian atau sebelum memindahkannya ke produksi.
Hindari Menulis Metode Panjang
Metode tidak boleh terlalu panjang dan harus spesifik untuk melakukan fungsi tunggal. Lebih baik untuk pemeliharaan dan juga kinerja karena saat pemuatan kelas dan selama pemanggilan metode, metode dimuat dalam memori tumpukan. Jika metode berukuran besar dengan terlalu banyak pemrosesan, metode tersebut akan menghabiskan memori serta siklus CPU untuk dieksekusi. Cobalah untuk memecah metode menjadi lebih kecil pada titik logis yang sesuai. Juga, jika Anda ingin memperkuat keterampilan Anda di Java, daftarkan diri Anda di Geeksforgeeks Java Programming Foundation Kursus Mandiri dan pelajari konsep dasar, tipe data, operator, fungsi & lainnya.
Hindari Beberapa Pernyataan If-else
Kami menggunakan pernyataan bersyarat dalam kode kami untuk pengambilan keputusan. Pernyataan kondisional tidak boleh digunakan secara berlebihan. Jika kita menggunakan terlalu banyak pernyataan if-else bersyarat, ini akan memengaruhi kinerja karena JVM harus membandingkan kondisinya.
Baca Juga : Pemrograman Code Java Yang Perlu Kalian Ketahui
Ini bisa menjadi lebih buruk jika hal yang sama digunakan dalam pernyataan perulangan seperti for, while, dll. Jika ada terlalu banyak kondisi dalam logika bisnis Anda, coba kelompokkan kondisi dan dapatkan hasil boolean dan gunakan dalam pernyataan if. Juga, kita bisa berpikir untuk menggunakan pernyataan switch alih-alih beberapa if-else jika memungkinkan. Pernyataan peralihan memiliki keunggulan kinerja dibandingkan if – else.
Hindari Mendapatkan Ukuran Koleksi di Loop
Saat mengulang melalui koleksi apa pun, dapatkan ukuran koleksi sebelumnya dan jangan pernah mendapatkannya selama iterasi.
Hindari Menggunakan Objek String Untuk Penggabungan
String adalah kelas yang tidak dapat diubah, objek yang dibuat oleh String tidak dapat digunakan kembali. Jadi jika kita perlu membuat string besar dalam kasus kueri SQL, dll, merupakan praktik yang buruk untuk menggabungkan objek String menggunakan operator ‘+’. Ini akan menyebabkan banyak objek String dibuat yang mengarah ke lebih banyak penggunaan memori heap. Dalam hal ini, kita dapat menggunakan StringBuilder atau StringBuffer, yang pertama lebih disukai daripada yang terakhir karena memiliki keunggulan kinerja karena metode yang tidak disinkronkan.
Gunakan Tipe Primitif Sedapat Mungkin
Penggunaan tipe primitif di atas objek bermanfaat karena data tipe primitif disimpan di memori tumpukan dan objek disimpan di memori tumpukan. Jika memungkinkan, kita dapat menggunakan tipe primitif daripada objek karena akses data dari memori tumpukan lebih cepat daripada memori tumpukan. Jadi selalu bermanfaat untuk menggunakan int di atas Integer atau double di atas Double.
Hindari Penggunaan Kelas BigDecimal
Kita tahu bahwa kelas BigDecimal memberikan ketepatan yang akurat untuk nilai desimal. Penggunaan berlebihan dari objek ini menghambat kinerja secara drastis khususnya ketika hal yang sama digunakan untuk menghitung nilai tertentu dalam satu lingkaran. BigDecimal menggunakan banyak memori dalam waktu lama atau ganda untuk melakukan perhitungan. Jika presisi bukan kendala atau jika kami yakin rentang nilai yang dihitung tidak akan melebihi panjang atau dua kali lipat, kami dapat menghindari penggunaan BigDecimal dan menggunakan panjang atau ganda dengan pengecoran yang tepat.
Hindari Sering Membuat Objek Besar
Ada kelas-kelas tertentu yang bertindak sebagai pemegang data di dalam aplikasi. Benda-benda ini berat dan pembuatannya harus dihindari berkali-kali. Contoh objek tersebut adalah objek koneksi DB atau objek konfigurasi sistem atau objek sesi untuk pengguna setelah login. Objek-objek ini menggunakan banyak sumber daya saat dibuat. Kita harus menggunakan kembali objek-objek ini alih-alih membuatnya karena pembuatan akan menghambat kinerja aplikasi secara drastis karena penggunaan memori yang lebih banyak. Kita harus menggunakan pola Singleton sedapat mungkin untuk membuat satu instance objek dan menggunakannya kembali jika diperlukan atau mengkloning objek alih-alih membuat yang baru.
Gunakan Prosedur Tersimpan Daripada Kueri
Lebih baik menulis prosedur tersimpan daripada kueri yang rumit dan panjang dan memanggilnya saat memproses. Prosedur tersimpan disimpan sebagai objek dalam database dan dikompilasi sebelumnya. Waktu eksekusi dari prosedur tersimpan lebih sedikit dibandingkan dengan kueri dengan logika bisnis yang sama karena kueri dikompilasi dan dieksekusi setiap kali dipanggil melalui aplikasi. Selain itu, prosedur tersimpan memiliki keunggulan dalam transfer data dan lalu lintas jaringan karena kami tidak mentransfer kueri kompleks untuk dieksekusi setiap saat ke server basis data.
Menggunakan PreparedStatement sebagai ganti Pernyataan
Saat menjalankan kueri SQL melalui aplikasi, kami menggunakan JDBC API dan kelas untuk hal yang sama. PreparedStatement memiliki kelebihan dibanding Statement untuk eksekusi kueri berparameter karena objek preparatestatement dikompilasi sekali dan dieksekusi berkali-kali. Objek pernyataan di sisi lain dikompilasi dan dieksekusi setiap kali dipanggil. Juga , objek pernyataan yang disiapkan aman untuk menghindari serangan injeksi SQL untuk keamanan Aplikasi Web.
Penggunaan Pernyataan Log yang Tidak Perlu dan Level Log yang Salah
Logging adalah bagian integral dari aplikasi apa pun dan perlu diimplementasikan secara efisien untuk menghindari penurunan kinerja karena logging dan level log yang salah. Kita harus menghindari memasukkan objek besar ke dalam kode. Logging harus dibatasi pada parameter tertentu yang perlu kita pantau dan bukan keseluruhan objek. Juga , level logging harus disimpan ke level yang lebih tinggi seperti DEBUG, ERROR, dan bukan INFO.