Secara umum, solusi paling penting untuk suatu masalah adalah solusi yang benar-benar ada dan valid untuk kasus-kasus sebagaimana ada untuk masalah Anda. Dengan kata lain, hindari optimasi prematur sampai Anda benar-benar tahu Anda memiliki kode yang tidak efisien, atau kode efisien yang perlu lebih cepat.
Juga, jangan lupa bahwa solusi terbaik untuk aplikasi Anda mungkin bukan solusi kasus umum. Kasus dan poin, beberapa tahun yang lalu seorang profesor memberi masalah kepada kelas kami di mana kami harus mencetak 10 angka pertama dari jenis yang diberikan (maaf, ingatan saya gagal untuk jenis itu, tetapi itu adalah salah satu dari jumlah yang lebih tidak biasa) kelas) dan kami diberi tes untuk memeriksa untuk memastikan bahwa nomor tersebut adalah tipe yang diberikan. Ini adalah tingkat masalah yang diberikan kepada kami dan kami diberitahu bahwa itu disebabkan keesokan harinya dengan solusi paling efisien yang menerima kredit penuh. Kuliah berikut sang profesor merangkum hasilnya:
- Beberapa siswa menggunakan loop sederhana dan rumus yang disediakan untuk memeriksa untuk memastikan angka-angka itu benar dan menampilkannya, lambat tetapi menyelesaikan pekerjaan, O (n ^ 3).
- Siswa lain melakukan penelitian dan menemukan formula yang melakukan pekerjaan pengecekan yang lebih baik untuk memastikan bahwa angka yang diberikan valid, program ini berjalan lebih cepat, O (n ^ 2).
- Satu siswa menggunakan rumus lambat untuk menghasilkan nilai-nilai dan kemudian menyalinnya ke dalam array konstan dalam kode mereka dan menampilkan kontennya, O (n).
Solusi terakhir dinilai paling efisien oleh profesor. Ternyata masalahnya sebenarnya adalah latihan memahami sepenuhnya masalah dan tidak hanya keluar dan menemukan solusi yang paling efisien.
Maksud di atas adalah bahwa ketika datang untuk menemukan solusi yang efisien masalah, biasanya lebih baik menghabiskan waktu untuk memastikan Anda benar-benar memahami apa masalahnya sebelum pergi dan menulis kode, atau mencoba mengoptimalkan kode. Jika Anda dapat menyimpan satu set nilai referensi dalam array konstan maka Anda lebih baik melakukannya dari sudut pandang kinerja daripada mencoba menulis beberapa algoritma mewah.
Demikian juga, jangan lupa bahwa untuk sebagian besar aplikasi, satu-satunya orang yang cenderung melihat kode tidak efisien (ketika itu tidak perlu tidak efisien!) Adalah pengembang sendiri. Jika Anda menulis kode bersih yang hanya melakukan apa yang perlu dilakukan, kemungkinan besar sebagian besar waktu pengguna tidak akan melihat masalah kinerja ketika bekerja dengan program Anda dan ketika mereka hanya mengoptimalkan bagian-bagian yang mereka sebutkan. kamu.