Sobes.tech
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.