The functions `copy`

and `collect`

are extremely slow on the results of a QR factorization. `Matrix`

produces the same result, but is much faster. An easy solution is to not use `copy`

or `collect`

. Is there a good reason for these routines to be so much slower? If not, fixing this is sure to help some people.

The following example is with Julia 1.1.0, on an iMac.

```
julia> n = 10
julia> q = qr(randn(n,n)).Q;
julia> @btime x = copy($q);
81.203 μs (301 allocations: 47.75 KiB)
julia> @btime y = collect($q);
80.980 μs (301 allocations: 47.75 KiB)
julia> @btime z = Matrix($q);
5.253 μs (2 allocations: 1.75 KiB)
julia> x == y == z
true
julia> n = 100;
julia> q = qr(randn(n,n)).Q;
julia> @btime x = copy($q);
114.106 ms (30002 allocations: 25.71 MiB)
julia> @btime y = collect($q);
113.197 ms (30002 allocations: 25.71 MiB)
julia> @btime z = Matrix($q);
114.343 μs (4 allocations: 156.41 KiB)
```

As you can imagine, it becomes much worse with larger matrices.