# Why is the function evaluation with more allocations faster?

**URL:** <https://discourse.julialang.org/t/why-is-the-function-evaluation-with-more-allocations-faster/58934>\
**Category:** Performance\
**Created:** [April 9, 2021, 5:06pm UTC](https://discourse.julialang.org/t/why-is-the-function-evaluation-with-more-allocations-faster/58934 "2021-04-09T17:06:43Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![jlchan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlchan/32/10958_2.png) [@jlchan](https://discourse.julialang.org/u/jlchan)\
**Post date:** [April 9, 2021, 5:50pm UTC](https://discourse.julialang.org/t/why-is-the-function-evaluation-with-more-allocations-faster/58934/6 "2021-04-09T17:50:03Z")

</div>

Interesting. How can you tell that `exp` and `log` are are inlined? I know you can use [@code\_typed](https://discourse.julialang.org/t/is-there-a-way-to-tell-if-a-function-was-inline-d/54392) to check inlining for a function you wrote, but does it work for special functions too?

When I call @code\_llvm on f(x), I get (buried within the output)

```julia
                 %55 = call double @j_log_609(double %52)
                  ...(some broadcast output here)
                 %56 = call double @j_exp_610(double %55)

```

while for h(x), I get

```julia
               %55 = call double @j_log_615(double %52)
               %56 = call double @j_exp_616(double %55)

```

I’m not sure how to conclude that one function is inlined and the other isn’t based on @code\_llvm output.

---

_[View the full topic](https://discourse.julialang.org/t/why-is-the-function-evaluation-with-more-allocations-faster/58934)._
