Junior — Middle
Fonksiyonların inline edilme kavramını ve bunun programın performansına etkisini açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Fonksiyonların inline edilmesi, derleyicinin bir fonksiyon çağrısını doğrudan çağrı yerine gövdesiyle değiştirmesiyle yapılan bir optimizasyondur. Bu, fonksiyon çağrısına ilişkin maliyetleri (geçiş, bağlamın korunması) ortadan kaldırır.
Go'da, derleyici küçük fonksiyonları otomatik olarak inline eder, eğer bu performansı artırıyorsa.
İnlining avantajları:
- Fonksiyon çağrısı olmadan çalışma süresinin azaltılması.
- Derleyici tarafından diğer optimizasyonlara olanak tanır (örneğin, sabit yayılımı).
Dezavantajlar:
- Derlenmiş kodun boyutunun artması (bloat), bu da önbellekleme üzerinde olumsuz etkiler yapabilir.
Örnek:
func add(a, b int) int {
return a + b
}
func main() {
sum := add(3, 4) // derleyici add çağrısını 3 + 4 ile değiştirebilir
fmt.Println(sum)
}
Eğer add fonksiyonu inline edilirse, çağrı basit ifade 3 + 4 ile değiştirilir, bu da daha hızlıdır.