I am have difficulty in firguring out why WhyMemoryLeak() leaks memory, and NoMemoryLeak() does not!! They are both identical except for the line in the for loop.
It is driving me nuts! I am running Julia 3.11 and Windows 10. This happens in Juno and in the REPL. Does anyone have any ideas? Thanks...Archie #------------------------ sample Julia Program function WhyMemoryLeak(num_iters::Int64, sleep_time::Float64) for i = 1:num_iters sleep(sleep_time) end return nothing end function NoMemoryLeak(num_iters::Int64, sleep_time::Float64) for i = 1:num_iters sqrt(i) * sleep_time end return nothing end #--------- simulate the actual sleep_ns process computing actual sleep times ---------- sleep_time = .003 println("-- results for NoMemoryLeak --") @time NoMemoryLeak(10, sleep_time) #-- warm up NoMemoryLeak @time NoMemoryLeak(100, sleep_time) #-- run NoMemoryLeak with 100 iters @time NoMemoryLeak(1000, sleep_time) #-- run NoMemoryLeak with 1000 iters println("\n-- results for NoMemoryLeak --") @time WhyMemoryLeak(10, sleep_time) #-- warm up WhyMemoryLeak @time WhyMemoryLeak(100, sleep_time) #-- run WhyMemoryLead with 100 iters @time WhyMemoryLeak(1000, sleep_time) #-- run WhyMemoryLead with 100 iters #---- results of run - -- results for NoMemoryLeak -- - elapsed time: 0.004308194 seconds (72968 bytes allocated) - elapsed time: 4.521e-6 seconds (80 bytes allocated) - elapsed time: 4.931e-6 seconds (80 bytes allocated) -- results for NoMemoryLeak -- - elapsed time: 0.048005713 seconds (70748 bytes allocated) - elapsed time: 0.431385715 seconds (39280 bytes allocated) - elapsed time: 4.346366676 seconds (392080 bytes allocated)