Could this be related to an internet connection with very high latency caused by an imposed indirection through the professional network associated to complex and costly security procedures ?
(I have witnessed very slow update on my wife’s professional laptop connected to internet through a professional network.)
I have tried the timings on my home computer, though. This is a v old homebrew based on an i7-2600k SandyBridge, but it sits on the same desk next to my work computer. They both connect wirelessly to the same home network and domestic broadband connection. These timings were after a restart:
DataFrames : 2.408634 seconds (618.85 k allocations: 46.273 MiB, 4.50% gc time, 0.66% compilation time)
CSV : 0.538690 seconds (130.93 k allocations: 7.862 MiB)
Dates : 0.001983 seconds (418 allocations: 28.969 KiB)
ZipArchives : 0.131648 seconds (29.80 k allocations: 1.937 MiB)
GeoStats : 6.741997 seconds (1.45 M allocations: 78.924 MiB, 1.50% gc time, 2.41% compilation time: 92% of which was recompilation)
GeoIO : 7.316927 seconds (2.36 M allocations: 145.175 MiB, 1.83% gc time, 3.07% compilation time: 97% of which was recompilation)
Proj : 0.118895 seconds (23.58 k allocations: 1.279 MiB)
Makie : 7.924092 seconds (1.71 M allocations: 105.704 MiB, 7.24% gc time, 0.28% compilation time)
CSV.read : 3.276746 seconds (869.42 k allocations: 56.316 MiB, 99.25% compilation time: 74% of which was recompilation)
julia> versioninfo()
Julia Version 1.10.2
Commit bd47eca2c8 (2024-03-01 10:14 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 8 × Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, sandybridge)
Threads: 1 default, 0 interactive, 1 GC (on 8 virtual cores)
Environment:
JULIA_EDITOR = code
JULIA_NUM_THREADS = 0
I guess these figures put my home set-up in the clear and do point to the corporate configuration of my laptop.
I’m am not totally sure to understand your last sentence (my English is not very good).
If I read the figures correctly, you have to wait around 25 s at the beginning of a new Julia session. It is better than the several minutes on your professional computer. right ?
You may try to launch internet bandwidth and latency benchmark from both computers to assess my hypothesis.
Task Manager is a good place to start but “Resource Monitor” (as Admin) can sometimes provide more useful details.
If something is hogging the disk during the first run it should be easy to spot.
I don’t think it is the network because he is describing slow loading time in the same environment after rebooting his computer. Meaning it appears to just be local loading of packages, not downloading from the network.
Could you try julia --pkgimages=no? My guess there is that might speed up the loading of a few packages when loading for the first time, but it might make some packages slower to load the second time.
If you want to pursue my DLL hypothesis, I would try this procedure.
First get the path to a DLL:
julia> using SuiteSparse_jll
julia> SuiteSparse_jll.libcamd_path
"~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/bin/../lib/julia/libcamd.so.3"
julia> exit()
In a new Julia session, after restart try to dlopen it directly.
julia> using Libdl
julia> @time Libdl.dlopen("~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/bin/../lib/julia/libcamd.so.3")
julia> exit()
In a new Julia session, without restarting, try to dlopen it again.
julia> using Libdl
julia> @time Libdl.dlopen("~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/bin/../lib/julia/libcamd.so.3")
julia> exit()
If the above works, then we should try to remove Julia from the equation and write a short C or Zig executable to test dynamic loading.
The end game is that you go back to security, saying that you are a software developer who creates native DLLs for a living.
I don’t think so. To do so would violate my IT user agreement. To install non-approved software I need explicit IT agreement, which can take weeks and needs a supporting case. (ref: GMT wasn’t approved).
There is no Do run option!
Maybe I’m a lost cause, but tightly controlled IT environments aren’t uncommon.
If these restrictions are making it hard for you to do your job, I highly recommend speaking with your manager. See this thread for more thoughts on the matter:
Thanks @mbauman. I’ve seen this thread. For my money, they key drivers of reluctance for IT are security concerns and the additional support requirements. The former is probably about adding another risk to a list of risks to manage rather than simply about the absolute level of risk associated with julia.
For context, as I said above, this issue costs me perhaps 5 minutes a day. This isn’t huge compared with the productivity I get from using julia. Since I’ve never used Python, R, Matlab, etc, this cost is unlikely to drive me to abandon julia any time soon.