Sobes.tech
Junior — Middle

Objasnite koncept inline funkcija i njegov uticaj na performanse programa.

sobes.tech АИ

Одговор од АИ

Inlajn funkcije je optimizacija kompajlera pri kojoj se poziv funkcije zamenjuje njenim telom direktno na mestu poziva. Ovo uklanja troškove povezane sa pozivom funkcije (prelaz, očuvanje konteksta).

U Go, kompajler automatski inlajnira male funkcije ako to poboljšava performanse.

Prednosti inlajn funkcija:

  • Smanjenje vremena izvršenja izbegavanjem poziva funkcije.
  • Mogućnost daljih optimizacija od strane kompajlera (npr. propagacija konstanti).

Nedostaci:

  • Povećanje veličine kompajliranog koda (code bloat), što može negativno uticati na keširanje.

Primer:

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

func main() {
    sum := add(3, 4) // kompajler može zameniti poziv add sa 3 + 4
    fmt.Println(sum)
}

Ako se funkcija add inline, poziv se zamenjuje jednostavnim izrazom 3 + 4, što je brže.