# \`using AMQPClient\` significantly slows down code

**URL:** <https://discourse.julialang.org/t/using-amqpclient-significantly-slows-down-code/31228>\
**Category:** Performance\
**Tags:** question\
**Created:** [November 18, 2019, 3:46pm UTC](https://discourse.julialang.org/t/using-amqpclient-significantly-slows-down-code/31228 "2019-11-18T15:46:45Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Marek\_Kukan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marek_kukan/32/10430_2.png) [@Marek\_Kukan](https://discourse.julialang.org/u/Marek_Kukan)\
**Post date:** [November 18, 2019, 3:46pm UTC](https://discourse.julialang.org/t/using-amqpclient-significantly-slows-down-code/31228/1 "2019-11-18T15:46:45Z")

</div>

Hello,

I came across this weird performance issue, can someone please explain why `using AMQPClient` causes ~100x performance drop?

```julia
julia> m = Matrix{Any}(rand(1000,1000));

julia> function f(m, n)
           for i in 1:n
               m = vcat(m, zeros(1, 1000))
           end 
       end
f (generic function with 1 method)

julia> @time f(m, 10)
  0.280798 seconds (355.77 k allocations: 94.275 MiB, 23.08% gc time)

julia> @time f(m, 10)
  0.072561 seconds (10.04 k allocations: 76.945 MiB, 19.58% gc time)

julia> using AMQPClient

julia> @time f(m, 10)
  6.048357 seconds (132.75 k allocations: 82.892 MiB, 0.17% gc time)

julia> @time f(m, 10)
  6.084253 seconds (10.04 k allocations: 76.945 MiB, 0.17% gc time)

```

---

<div class="post-metadata">

**Author:** ![Pbellive](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pbellive/32/3604_2.png) [@Pbellive](https://discourse.julialang.org/u/Pbellive)\
**Post date:** [November 18, 2019, 8:00pm UTC](https://discourse.julialang.org/t/using-amqpclient-significantly-slows-down-code/31228/2 "2019-11-18T20:00:19Z")

</div>

Henh. Strange. I don’t know what’s going on here. I can reproduce on julia 1.2.0 on Linux. But if I change `m` to

```julia
m = rand(1000,1000)

```

then `using AMPQClient` no longer causes a slowdown in f.

---

<div class="post-metadata">

**Author:** ![tanmaykm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tanmaykm/32/60_2.png) [@tanmaykm](https://discourse.julialang.org/u/tanmaykm)\
**Post date:** [November 21, 2019, 9:48am UTC](https://discourse.julialang.org/t/using-amqpclient-significantly-slows-down-code/31228/3 "2019-11-21T09:48:58Z")

</div>

I was able to narrow it down to:

```julia
julia> m = Matrix{Any}(rand(1000,1000));

julia> function f(m, n)
           for i in 1:n
               m = vcat(m, zeros(1, 1000))
           end 
       end
f (generic function with 1 method)

julia> @time f(m, 10);
  0.306576 seconds (382.74 k allocations: 95.807 MiB, 37.96% gc time)

julia> @time f(m, 10);
  0.064143 seconds (10.04 k allocations: 76.945 MiB, 18.77% gc time)

julia> import Base.convert

julia> struct MyType
       end

julia> convert(::Type{Any}, o::MyType) = ""
convert (generic function with 186 methods)

julia> @time f(m, 10);
  9.189991 seconds (154.01 k allocations: 84.212 MiB, 0.13% gc time)

```

---

<div class="post-metadata">

**Author:** ![Pbellive](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pbellive/32/3604_2.png) [@Pbellive](https://discourse.julialang.org/u/Pbellive)\
**Post date:** [November 21, 2019, 6:31pm UTC](https://discourse.julialang.org/t/using-amqpclient-significantly-slows-down-code/31228/4 "2019-11-21T18:31:34Z")

</div>

Very interesting. Nice find. Are you able to open an issue about this?

---

<div class="post-metadata">

**Author:** ![tanmaykm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tanmaykm/32/60_2.png) [@tanmaykm](https://discourse.julialang.org/u/tanmaykm)\
**Post date:** [November 25, 2019, 10:05am UTC](https://discourse.julialang.org/t/using-amqpclient-significantly-slows-down-code/31228/5 "2019-11-25T10:05:52Z")

</div>

I have a PR to update AMQPClient now: [https://github.com/JuliaComputing/AMQPClient.jl/pull/25](https://github.com/JuliaComputing/AMQPClient.jl/pull/25)
