In below, the code runned with mumtil-threads with using Theads.@threads. When I run it again and again, the percent of gc time becoming large and large. I don’t know what is going on here? Can anyone guess on it?
first running
@time dil(c25stra.stp1,c25stra.stp2);
71.885654 seconds (419.64 M allocations: 24.443 GiB, 26.99% gc time, 45.28% compilation time)
second running
@time dil(c25stra.stp1,c25stra.stp2);
72.888453 seconds (317.27 M allocations: 19.647 GiB, 68.90% gc time)
third running
@time dil(c25stra.stp1,c25stra.stp2);
263.029961 seconds (317.27 M allocations: 19.647 GiB, 92.53% gc time)
forth running
@time
> dil(c25stra.stp1,c25stra.stp2)
253.931622 seconds (317.27 M allocations: 19.647 GiB, 92.27% gc time)
When run the code, it generate many Vector of Bitset. Is it the possible reason for that strange thing?
I get some hint.
dil(c25stra.stp1,c25stra.stp2)
this code return a matrix of BitSet like this, the size of it is ( 3million+, 3 ):
When I run a one-step forther code, which return a matrix of Float64, the strange thing disapear.
I guess, each time I run the dil(c25stra.stp1,c25stra.stp2)
, the returned matrix is catched by REPl in somewhere? It is never be trigged by gc untile I run the code again. Does it make a sense?