# Profiling on beta2

**URL:** <https://discourse.julialang.org/t/profiling-on-beta2/12435>\
**Category:** General Usage\
**Created:** [July 17, 2018, 1:26pm UTC](https://discourse.julialang.org/t/profiling-on-beta2/12435 "2018-07-17T13:26:22Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![krcools](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/krcools/32/10212_2.png) [@krcools](https://discourse.julialang.org/u/krcools)\
**Post date:** [July 17, 2018, 1:26pm UTC](https://discourse.julialang.org/t/profiling-on-beta2/12435/1 "2018-07-17T13:26:22Z")

</div>

My boundary element assembly code is two times slower on 0.7-beta2 than on 0.6.4. Execution hangs when I try to `@profile` the relevant method. CPU usage in task manager is negligible. It this a know problem in the beta release?

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [July 17, 2018, 1:45pm UTC](https://discourse.julialang.org/t/profiling-on-beta2/12435/2 "2018-07-17T13:45:32Z")

</div>

That’s a pretty vague issue. Can you be a little more specific?

---

<div class="post-metadata">

**Author:** ![krcools](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/krcools/32/10212_2.png) [@krcools](https://discourse.julialang.org/u/krcools)\
**Post date:** [July 17, 2018, 3:45pm UTC](https://discourse.julialang.org/t/profiling-on-beta2/12435/3 "2018-07-17T15:45:07Z")

</div>

Yes.

This code becomes between a factor 40 and 100 slower moving from 0.6.4 to 0.7:

```julia
using StaticArrays

u = @SVector [1.0, 0.0, 0.0]
v = @SVector [0.0, 1.0, 0.0]

function _normals(tangents, ::Type{Val{1}})
    PT = eltype(tangents)
    D = length(tangents)
    T = eltype(PT)

    n = zeros(T,D+1)
    b = Array{T}(D,D)

    for i in 1:D+1
        fill!(b, zero(T))
        for j in 1:D
            for k in 1:i-1
                b[k,j] = tangents[j][k]
            end
            for k in i:D
                b[k,j] = tangents[j][k+1]
            end
        end
        n[i] = (-1)^(i-1) * det(b)
    end

    n *= (-1)^D / norm(n)
    normals = SVector{1,PT}([PT(n)])

    metric = T[dot(tangents[i], tangents[j]) for i in 1:D, j in 1:D]
    volume = sqrt(abs(det(metric))) / D

    return normals, volume

end

ts = @SVector [u,v]

_normals(ts, Val{1})
@time _normals(ts, Val{1})

```

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [July 17, 2018, 3:49pm UTC](https://discourse.julialang.org/t/profiling-on-beta2/12435/4 "2018-07-17T15:49:04Z")

</div>

Have you tried fixing the deprecation warnings? If you do `using StaticArrays, LinearAlgebra` and change `Array{T}(D,D)` to `Array{T}(undef,D,D)` it takes 20 milliseconds on my system.

---

<div class="post-metadata">

**Author:** ![krcools](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/krcools/32/10212_2.png) [@krcools](https://discourse.julialang.org/u/krcools)\
**Post date:** [July 17, 2018, 3:51pm UTC](https://discourse.julialang.org/t/profiling-on-beta2/12435/5 "2018-07-17T15:51:53Z")

</div>

That fixed it. Thank you.
