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