Junior — Middle
Miben különböznek az inline függvények a szokásos függvényektől, és mik az előnyeik?
sobes.tech MI
Válasz az MI-től
Inline függvények azok a függvények, amelyeket a fordító megpróbál közvetlenül a hívás helyén helyettesíteni, nem pedig hagyományos függvényként hívni őket. Ez csökkenti a függvényhívás költségeit (például az átmenet a címre és a kontextus mentése).
Az inline függvények előnyei:
- A teljesítmény növelése a függvényhívás kiküszöbölésével.
- A fordító jobb optimalizálási lehetősége, például szükségtelen változók eltávolítása.
Azonban, ha a függvény nagy, az inline növelheti a bináris méretet, ezért a fordító figyelmen kívül hagyhatja az inline-ot nagy függvények esetén.
Példa Kotlinben:
inline fun measureTime(block: () -> Unit) {
val start = System.currentTimeMillis()
block()
println("Time: ${System.currentTimeMillis() - start} ms")
}
// Használat
measureTime {
// kód, amelynek futási idejét mérni kell
}