I upgraded my code (~5000 lines) from 0.4.6 to to 0.5.0, and it has slowed down by a factor of >60. You can see below from the output of @time that at least one issue is a substantial increase in memory allocation. I have two questions:
(1) The track-allocation feature of Julia in 0.5.0 is not working on my code. (I already opened an issue about that:: https://github.com/JuliaLang/julia/issues/19502), Is there another way to find the culprit?
(2) Are there any known issues in 0.5.0 that could account for this slow-down and excessive allocation? My code is a finite element solver. It consists of matrix assembly, which involves many operations on small dense vectors, matrices and tensors, followed by operations on large sparse matrices (calls to sparse Cholesky mainly). I hand-coded all of the small tensor/matrix/vector operations with explicit loops (constructed by a macro) in order to avoid overhead from allocating and deallocating small objects.
0.4.6:
11.678110 seconds (10.09 M allocations: 4.090 GB, 8.31% gc time)
0.5.0:
755.822319 seconds (3.19 G allocations: 79.052 GB, 3.12% gc time)