It seems that when I upgraded the Fatou to julia 0.6 from 0.5, I needed to work around the new world counting feature in the julia language. It was possible to make Fatou functional in 0.6 by using the new
invokelatest() function in the places where it was needed to run newly generated code.
However, this change significantly affects the computing time required by
This can be easily demonstrated by running the
In julia 0.6
julia> Pkg.test("Fatou") INFO: Testing Fatou Fatou detected 4 julia threads. 0.680028 seconds (1.27 M allocations: 45.425 MiB, 4.22% gc time) 0.325977 seconds (1.17 M allocations: 34.818 MiB, 2.54% gc time) 0.348296 seconds (1.17 M allocations: 35.009 MiB, 4.45% gc time) INFO: Fatou tests passed
However, in julia 0.5.2 the code is able to run faster:
julia> Pkg.test("Fatou") INFO: Testing Fatou Fatou detected 4 julia threads. 0.313702 seconds (566.66 k allocations: 15.841 MB, 3.38% gc time) 0.165542 seconds (913.34 k allocations: 24.549 MB, 4.70% gc time) 0.264221 seconds (629.58 k allocations: 17.135 MB, 3.39% gc time) INFO: Fatou tests passed
Is this a natural consequence of the world counting and invokelatest features? Is this something for which the performance can be improved still within the julia langauge? Is there something I am overlooking on my end that would help me speed it up again?