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.