Sobes.tech
Junior — Middle

Selgitage funktsioonide inline'i kontseptsiooni ja selle mõju programmi jõudlusele.

sobes.tech AI

Vastus AI-lt

Funktsioonide inlining on kompilaatori optimeerimine, mille käigus funktsiooni kutsumine asendatakse selle keha otse kutsumise kohas. See kõrvaldab funktsiooni kutsumisega seotud kulud (ülekanne, konteksti säilitamine).

Go keeles inlining automaatselt väikeseid funktsioone, kui see parandab jõudlust.

Inliningu eelised:

  • Aja kokkuhoid, vältides funktsiooni kutsumist.
  • Võimalus täiendavateks optimeerimisteks (nt konstantide levitamine).

Miinused:

  • Koodi suuruse suurenemine (code bloat), mis võib negatiivselt mõjutada vahemälu.

Näide:

func add(a, b int) int {
    return a + b
}

func main() {
    sum := add(3, 4) // kompilaator võib asendada add kutsumise 3 + 4-ga
    fmt.Println(sum)
}

Kui add funktsioon on inline, asendatakse kutsumine lihtsa väljendiga 3 + 4, mis on kiirem.