Windows is slower than WSL2 in loading GR, Preferences, Julia 1.9.0-beta2

I recently installed WSL 2. I noticed that @time_imports reports faster import times for Preferences and GR under WSL2 than under Windows. The loading time for Preferences.jl is appears to be 10x worse.

# WSL 2
julia> @time_imports using GR
     24.3 ms  Preferences
     90.1 ms  GR 4.56% compilation time
# Windows
julia> @time_imports using GR
    263.1 ms  Preferences
    162.5 ms  GR 4.22% compilation time
Full `@time_imports` output for WSL2 and Windows
# WSL2 

julia> @time_imports using GR
     24.3 ms  Preferences
      0.3 ms  JLLWrappers
      3.3 ms  Bzip2_jll 88.78% compilation time
      0.4 ms  Libiconv_jll
      0.3 ms  Libffi_jll
      0.1 ms  Zlib_jll
      0.6 ms  XML2_jll
      0.4 ms  Gettext_jll
      0.2 ms  PCRE2_jll
      0.5 ms  Libmount_jll
      1.2 ms  Glib_jll
      0.3 ms  Pixman_jll
      0.3 ms  libpng_jll
      0.4 ms  FreeType2_jll
      0.3 ms  Libuuid_jll
      0.4 ms  Expat_jll
      4.4 ms  Fontconfig_jll 83.58% compilation time
      0.4 ms  Libgpg_error_jll
      0.4 ms  Libgcrypt_jll
      0.6 ms  XSLT_jll
      0.3 ms  Xorg_libXau_jll
      0.4 ms  Xorg_libXdmcp_jll
      0.2 ms  Xorg_libpthread_stubs_jll
      1.7 ms  Xorg_libxcb_jll
      0.2 ms  Xorg_xtrans_jll
      0.5 ms  Xorg_libX11_jll
      0.3 ms  Xorg_libXext_jll
      0.3 ms  Xorg_libXrender_jll
      0.3 ms  LZO_jll
      1.0 ms  Cairo_jll
      0.4 ms  FriBidi_jll
      0.3 ms  Graphite2_jll
      0.6 ms  HarfBuzz_jll
      0.4 ms  libass_jll
      0.4 ms  libfdk_aac_jll
      0.4 ms  LAME_jll
      0.4 ms  Ogg_jll
      0.6 ms  libvorbis_jll
      0.5 ms  libaom_jll
      0.4 ms  x264_jll
      0.4 ms  x265_jll
      0.7 ms  OpenSSL_jll
      0.3 ms  Opus_jll
      2.7 ms  FFMPEG_jll
      1.1 ms  Libglvnd_jll
      0.4 ms  Xorg_libXfixes_jll
      0.4 ms  Xorg_libXcursor_jll
      0.4 ms  Xorg_libXi_jll
      0.4 ms  Xorg_libXinerama_jll
      0.5 ms  Xorg_libXrandr_jll
      0.5 ms  GLFW_jll
      0.5 ms  JpegTurbo_jll
      0.3 ms  LERC_jll
      0.4 ms  Zstd_jll
      0.5 ms  Libtiff_jll
      0.4 ms  Xorg_xcb_util_jll
      0.4 ms  Xorg_xcb_util_wm_jll
      0.4 ms  Xorg_xcb_util_image_jll
      0.3 ms  Xorg_xcb_util_keysyms_jll
      0.4 ms  Xorg_xcb_util_renderutil_jll
      0.4 ms  Xorg_libxkbfile_jll
      0.3 ms  Xorg_xkbcomp_jll
      0.2 ms  Xorg_xkeyboard_config_jll
      0.6 ms  Wayland_jll
      0.2 ms  Wayland_protocols_jll
      0.5 ms  xkbcommon_jll
      5.1 ms  Qt5Base_jll
      0.5 ms  GR_jll
     90.1 ms  GR 4.56% compilation time
# Windows
julia> @time_imports using GR
    263.1 ms  Preferences
      1.4 ms  JLLWrappers
     12.6 ms  Bzip2_jll 75.61% compilation time
      1.4 ms  Libiconv_jll
      0.9 ms  Libffi_jll
      0.4 ms  Zlib_jll
      1.4 ms  XML2_jll
      1.2 ms  Gettext_jll
      0.8 ms  PCRE2_jll
      4.2 ms  Glib_jll
      1.4 ms  Pixman_jll
      1.0 ms  libpng_jll
      1.0 ms  FreeType2_jll
      0.4 ms  Libuuid_jll
      0.9 ms  Expat_jll
      5.9 ms  Fontconfig_jll 76.18% compilation time
      1.0 ms  LZO_jll
      3.1 ms  Cairo_jll
      1.0 ms  FriBidi_jll
      1.0 ms  Graphite2_jll
      1.6 ms  HarfBuzz_jll
      1.2 ms  libass_jll
      1.3 ms  libfdk_aac_jll
      1.0 ms  LAME_jll
      0.9 ms  Ogg_jll
      1.4 ms  libvorbis_jll
      1.8 ms  libaom_jll
      1.1 ms  x264_jll
      1.4 ms  x265_jll
      2.3 ms  OpenSSL_jll
      1.2 ms  Opus_jll
      8.2 ms  FFMPEG_jll
      1.0 ms  GLFW_jll
      1.5 ms  JpegTurbo_jll
      1.0 ms  LERC_jll
      1.0 ms  Zstd_jll
      1.2 ms  Libtiff_jll
     20.5 ms  Qt5Base_jll
      0.8 ms  GR_jll
    162.5 ms  GR 4.22% compilation time
1 Like

That’s somewhat surprising. One possibility is that NTFS is a really slow file system, but it would be good to know if there was another reason.

I suspect it is likely a persistent issue from an earlier report that I made:

Here’s the profile for Windows:

julia> Profile.print(; C = true, mincount = 5)
Overhead β•Ž [+additional indent] Count File:Line; Function
=========================================================
 β•Ž30 C:\windows\SYSTEM32\ntdll.dll:?; RtlUserThreadStart
 β•Ž 30 C:\windows\System32\KERNEL32.DLL:?; BaseThreadInitThunk
 β•Ž  30 C:/workdir/cli\loader_exe.c:59; mainCRTStartup
 β•Ž   30 C:/workdir/src\jlapi.c:717; jl_repl_entrypoint
 β•Ž    30 C:/workdir/src\jlapi.c:573; true_main
 β•Ž     30 C:/workdir/src\julia.h:1874; jl_apply
 β•Ž    β•Ž 30 C:\Users\kittisopikulm\.julia\juliaup\julia-1.9.0-beta2+0.x64.w64.mingw32\lib\julia\sys.dll:?; jfptr__start_48510.clone_1
 β•Ž    β•Ž  30 @Base\client.jl:522; _start()
 β•Ž    β•Ž   30 @Base\client.jl:322; exec_options(opts::Base.JLOptions)
 β•Ž    β•Ž    30 @Base\client.jl:405; run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
 β•Ž    β•Ž     30 @Base\essentials.jl:813; invokelatest
 β•Ž    β•Ž    β•Ž 30 @Base\essentials.jl:816; #invokelatest#2
 β•Ž    β•Ž    β•Ž  30 C:/workdir/src\builtins.c:774; jl_f__call_latest
 β•Ž    β•Ž    β•Ž   30 C:/workdir/src\julia.h:1874; jl_apply
 β•Ž    β•Ž    β•Ž    30 C:\Users\kittisopikulm\.julia\juliaup\julia-1.9.0-beta2+0.x64.w64.mingw32\lib\julia\sys.dll:?; jfptr_YY.1018_30785.clone_1
 β•Ž    β•Ž    β•Ž     30 @Base\client.jl:421; (::Base.var"#1018#1020"{Bool, Bool, Bool})(REPL::Module)
 β•Ž    β•Ž    β•Ž    β•Ž 30 C:\Users\kittisopikulm\.julia\juliaup\julia-1.9.0-beta2+0.x64.w64.mingw32\lib\julia\sys.dll:?; jfptr_run_repl_61782.clone_1
 β•Ž    β•Ž    β•Ž    β•Ž  30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:362; run_repl(repl::REPL.AbstractREPL, consumer::Any)
 β•Ž    β•Ž    β•Ž    β•Ž   30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:376; run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool, backend::Any)
 β•Ž    β•Ž    β•Ž    β•Ž    30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:230; kwcall
 β•Ž    β•Ž    β•Ž    β•Ž     30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:233; start_repl_backend(backend::REPL.REPLBackend, consumer::Any; get_module::Function)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:248; repl_backend_loop(backend::REPL.REPLBackend, get_module::Function)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:152; eval_user_input(ast::Any, backend::REPL.REPLBackend, mod::Module)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   30 @Base\boot.jl:370; eval
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    30 C:/workdir/src\toplevel.c:971; ijl_toplevel_eval_in
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     30 C:/workdir/src\toplevel.c:921; ijl_toplevel_eval
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 30 C:/workdir/src\toplevel.c:856; jl_toplevel_eval_flex
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  30 C:/workdir/src\toplevel.c:903; jl_toplevel_eval_flex
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   30 REPL[3]:0; top-level scope
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    30 @Base\timing.jl:273; top-level scope
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     28 C:\workdir\usr\share\julia\stdlib\v1.9\Profile\src\Profile.jl:27; macro expansion
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 28 C:/workdir/src\toplevel.c:731; jl_toplevel_eval_flex
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  28 C:/workdir/src\toplevel.c:503; eval_import_path
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   28 C:/workdir/src\toplevel.c:466; call_require
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    28 C:/workdir/src\julia.h:1874; jl_apply
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     28 C:\Users\kittisopikulm\.julia\juliaup\julia-1.9.0-beta2+0.x64.w64.mingw32\lib\julia\sys.dll:?; jfptr_require_56277.clone_1
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 28 @Base\loading.jl:1466; require(into::Module, mod::Symbol)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  28 @Base\lock.jl:267; macro expansion
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   28 @Base\loading.jl:1503; macro expansion
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    28 @Base\loading.jl:1515; _require_prelocked(uuidkey::Base.PkgId, env::String)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     28 @Base\loading.jl:1638; _require(pkg::Base.PkgId, env::String)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 25 @Base\loading.jl:1361; _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  24 @Base\loading.jl:949; _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any})
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   24 C:/workdir/src\staticdata.c:3466; ijl_restore_package_image_from_file
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    24 C:/workdir/src\staticdata.c:3353; jl_restore_incremental_from_buf
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     22 C:/workdir/src\staticdata.c:3316; jl_restore_package_image_from_stream
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 20 C:/workdir/src\staticdata_utils.c:1135; jl_insert_backedges
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  20 C:/workdir/src\staticdata_utils.c:921; jl_verify_edges
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   20 C:/workdir/src\gf.c:2077; ijl_matching_methods
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    6  C:/workdir/src\gf.c:3139; ml_matches
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     5  C:/workdir/src\typemap.c:545; jl_typemap_intersection_visitor
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 5  C:/workdir/src\typemap.c:586; jl_typemap_intersection_visitor
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  5  C:/workdir/src\typemap.c:407; jl_typemap_intersection_array_visitor
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   5  C:/workdir/src\typemap.c:457; jl_typemap_intersection_node_visitor
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    5  C:/workdir/src\subtype.c:3484; jl_type_intersection_env_s
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    12 C:/workdir/src\gf.c:3513; ml_matches
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     12 C:/workdir/src\gf.c:1164; cache_method
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 5  C:/workdir/src\gf.c:3346; ml_matches
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  5  C:/workdir/src\gf.c:1750; jl_type_intersection2
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   5  C:/workdir/src\subtype.c:3484; jl_type_intersection_env_s
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    5  C:/workdir/src\subtype.c:3247; intersect_all
Total snapshots: 30. Utilization: 100% across all threads and tasks. Use the `groupby` kwarg to break down by thread and/or task

I suspect it is likely a persistent issue from an earlier report that I made:

Here is a profile for Windows:

julia> using Profile

julia> Profile.clear()

julia> @time @profile using Preferences
  0.347303 seconds (90.77 k allocations: 5.667 MiB, 8.79% compilation time)

julia> Profile.print(; C = true, mincount = 5)
Overhead β•Ž [+additional indent] Count File:Line; Function
=========================================================
 β•Ž30 C:\windows\SYSTEM32\ntdll.dll:?; RtlUserThreadStart
 β•Ž 30 C:\windows\System32\KERNEL32.DLL:?; BaseThreadInitThunk
 β•Ž  30 C:/workdir/cli\loader_exe.c:59; mainCRTStartup
 β•Ž   30 C:/workdir/src\jlapi.c:717; jl_repl_entrypoint
 β•Ž    30 C:/workdir/src\jlapi.c:573; true_main
 β•Ž     30 C:/workdir/src\julia.h:1874; jl_apply
 β•Ž    β•Ž 30 C:\Users\kittisopikulm\.julia\juliaup\julia-1.9.0-beta2+0.x64.w64.mingw32\lib\julia\sys.dll:?; jfptr__start_48510.clone_1
 β•Ž    β•Ž  30 @Base\client.jl:522; _start()
 β•Ž    β•Ž   30 @Base\client.jl:322; exec_options(opts::Base.JLOptions)
 β•Ž    β•Ž    30 @Base\client.jl:405; run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
 β•Ž    β•Ž     30 @Base\essentials.jl:813; invokelatest
 β•Ž    β•Ž    β•Ž 30 @Base\essentials.jl:816; #invokelatest#2
 β•Ž    β•Ž    β•Ž  30 C:/workdir/src\builtins.c:774; jl_f__call_latest
 β•Ž    β•Ž    β•Ž   30 C:/workdir/src\julia.h:1874; jl_apply
 β•Ž    β•Ž    β•Ž    30 C:\Users\kittisopikulm\.julia\juliaup\julia-1.9.0-beta2+0.x64.w64.mingw32\lib\julia\sys.dll:?; jfptr_YY.1018_30785.clone_1
 β•Ž    β•Ž    β•Ž     30 @Base\client.jl:421; (::Base.var"#1018#1020"{Bool, Bool, Bool})(REPL::Module)
 β•Ž    β•Ž    β•Ž    β•Ž 30 C:\Users\kittisopikulm\.julia\juliaup\julia-1.9.0-beta2+0.x64.w64.mingw32\lib\julia\sys.dll:?; jfptr_run_repl_61782.clone_1
 β•Ž    β•Ž    β•Ž    β•Ž  30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:362; run_repl(repl::REPL.AbstractREPL, consumer::Any)
 β•Ž    β•Ž    β•Ž    β•Ž   30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:376; run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool, backend::Any)
 β•Ž    β•Ž    β•Ž    β•Ž    30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:230; kwcall
 β•Ž    β•Ž    β•Ž    β•Ž     30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:233; start_repl_backend(backend::REPL.REPLBackend, consumer::Any; get_module::Function)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:248; repl_backend_loop(backend::REPL.REPLBackend, get_module::Function)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  30 C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:152; eval_user_input(ast::Any, backend::REPL.REPLBackend, mod::Module)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   30 @Base\boot.jl:370; eval
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    30 C:/workdir/src\toplevel.c:971; ijl_toplevel_eval_in
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     30 C:/workdir/src\toplevel.c:921; ijl_toplevel_eval
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 30 C:/workdir/src\toplevel.c:856; jl_toplevel_eval_flex
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  30 C:/workdir/src\toplevel.c:903; jl_toplevel_eval_flex
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   30 REPL[3]:0; top-level scope
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    30 @Base\timing.jl:273; top-level scope
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     28 C:\workdir\usr\share\julia\stdlib\v1.9\Profile\src\Profile.jl:27; macro expansion
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 28 C:/workdir/src\toplevel.c:731; jl_toplevel_eval_flex
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  28 C:/workdir/src\toplevel.c:503; eval_import_path
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   28 C:/workdir/src\toplevel.c:466; call_require
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    28 C:/workdir/src\julia.h:1874; jl_apply
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     28 C:\Users\kittisopikulm\.julia\juliaup\julia-1.9.0-beta2+0.x64.w64.mingw32\lib\julia\sys.dll:?; jfptr_require_56277.clone_1
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 28 @Base\loading.jl:1466; require(into::Module, mod::Symbol)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  28 @Base\lock.jl:267; macro expansion
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   28 @Base\loading.jl:1503; macro expansion
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    28 @Base\loading.jl:1515; _require_prelocked(uuidkey::Base.PkgId, env::String)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     28 @Base\loading.jl:1638; _require(pkg::Base.PkgId, env::String)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 25 @Base\loading.jl:1361; _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  24 @Base\loading.jl:949; _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any})
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   24 C:/workdir/src\staticdata.c:3466; ijl_restore_package_image_from_file
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    24 C:/workdir/src\staticdata.c:3353; jl_restore_incremental_from_buf
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     22 C:/workdir/src\staticdata.c:3316; jl_restore_package_image_from_stream
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 20 C:/workdir/src\staticdata_utils.c:1135; jl_insert_backedges
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  20 C:/workdir/src\staticdata_utils.c:921; jl_verify_edges
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   20 C:/workdir/src\gf.c:2077; ijl_matching_methods
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    6  C:/workdir/src\gf.c:3139; ml_matches
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     5  C:/workdir/src\typemap.c:545; jl_typemap_intersection_visitor
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 5  C:/workdir/src\typemap.c:586; jl_typemap_intersection_visitor
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  5  C:/workdir/src\typemap.c:407; jl_typemap_intersection_array_visitor
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   5  C:/workdir/src\typemap.c:457; jl_typemap_intersection_node_visitor
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    5  C:/workdir/src\subtype.c:3484; jl_type_intersection_env_s
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    12 C:/workdir/src\gf.c:3513; ml_matches
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž     12 C:/workdir/src\gf.c:1164; cache_method
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž 5  C:/workdir/src\gf.c:3346; ml_matches
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž  5  C:/workdir/src\gf.c:1750; jl_type_intersection2
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž   5  C:/workdir/src\subtype.c:3484; jl_type_intersection_env_s
 β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    β•Ž    5  C:/workdir/src\subtype.c:3247; intersect_all
Total snapshots: 30. Utilization: 100% across all threads and tasks. Use the `groupby` kwarg to break down by thread and/or task
1 Like

I can not repro this:

Windows:

julia> @time_imports using GR
     13.0 ms  Preferences
...
     46.5 ms  GR 7.82% compilation time

WSL:

julia> @time_imports using GR
     12.1 ms  Preferences
...
     39.0 ms  GR 6.57% compilation time

Can you try clear out .julia/compiled, do a re-precompile and check again.