Terkadang kompiler memanggil fungsi inline. Itu berarti bahwa mereka memindahkan kode fungsi yang dipanggil ke fungsi panggilan. Hal ini membuat segalanya sedikit lebih cepat karena tidak perlu mendorong dan mengeluarkan barang dari dan ke stack panggilan.
Jadi pertanyaan saya adalah, mengapa kompiler tidak mengatur semuanya? Saya berasumsi itu akan membuat eksekusi lebih cepat.
Satu-satunya alasan yang bisa saya pikirkan adalah executable yang jauh lebih besar, tetapi apakah ini penting hari ini dengan ratusan GB memori? Bukankah peningkatan kinerja itu sepadan?
Apakah ada alasan lain mengapa kompiler tidak hanya sebaris semua panggilan fungsi?
Isn't the improved performance worth it?
Untuk metode yang akan menjalankan loop 100 kali dan menghasilkan angka yang serius, overhead untuk memindahkan 2 atau 3 argumen ke register CPU tidak ada artinya.