Junior — Middle
Vysvetlite koncept inliningu funkcií a jeho vplyv na výkon programu.
sobes.tech AI
Odpoveď od AI
Inlajn funkcie je optimalizácia kompilátora, pri ktorej sa volanie funkcie nahradí jej telom priamo na mieste volania. Tým sa odstraňujú náklady spojené s volaním funkcie (prechod, zachovanie kontextu).
V Go kompilátor automaticky inlajn-uje malé funkcie, ak to zlepšuje výkon.
Výhody inlajn funkcií:
- Skrátenie doby vykonávania vďaka vynechaniu volania funkcie.
- Možnosť ďalších optimalizácií kompilátora (napríklad propagácia konštánt).
Nevýhody:
- Zvýšenie veľkosti skompilovaného kódu (code bloat), čo môže negatívne ovplyvniť cache.
Príklad:
func add(a, b int) int {
return a + b
}
func main() {
sum := add(3, 4) // kompilátor môže nahradiť volanie add za 3 + 4
fmt.Println(sum)
}
Ak je funkcia add inline, je volanie nahradené jednoduchým výrazom 3 + 4, čo je rýchlejšie.