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

**URL:** <https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623>\
**Category:** Performance\
**Tags:** gr, wsl2, preferences\
**Created:** [January 7, 2023, 2:33am UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623 "2023-01-07T02:33:48Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [January 7, 2023, 2:33am UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/1 "2023-01-07T02:33:48Z")

</div>

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.

```julia
# WSL 2
julia> @time_imports using GR
     24.3 ms Preferences
     90.1 ms GR 4.56% compilation time

```

```julia
# 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**
>
> ```julia
> # 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
> 
> ```
> 
> ```julia
> # 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
> 
> ```

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [January 7, 2023, 2:38am UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/2 "2023-01-07T02:38:14Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [January 7, 2023, 2:59am UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/3 "2023-01-07T02:59:23Z")

</div>

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

> <https://github.com/JuliaLang/julia/issues/40570>
>
> \# Introduction
> 
> Code loading is 10x slower under Windows versus Windows Subsys…tem for Linux 2 (WSL 2) on the same machine for large binary packages such as \`GR\_jll\`:
> \`\`\`julia
> julia\> @time using GR\_jll # Windows, Julia 1.6.0
> 0.734392 seconds (361.12 k allocations: 24.173 MiB, 0.53% compilation time)
> 
> julia\> @time using GR\_jll # WSL, Julia 1.6.0
> 0.066454 seconds (192.13 k allocations: 14.770 MiB, 4.94% compilation time)
> \`\`\`
> 
> The difference is not as much with smaller packages:
> \`\`\`julia
> julia\> @time using ImarisWriter\_jll # Windows, Julia 1.6.0
> 0.274513 seconds (111.25 k allocations: 8.249 MiB, 1.31% compilation time)
> 
> julia\> @time using ImarisWriter\_jll
> 0.052826 seconds (64.77 k allocations: 5.350 MiB, 6.94% compilation time)
> \`\`\`
> 
> \# Windows
> \`\`\`
> julia\> versioninfo()
> Julia Version 1.6.0
> Commit f9720dc2eb (2021-03-24 12:55 UTC)
> Platform Info:
> OS: Windows (x86\_64-w64-mingw32)
> CPU: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
> WORD\_SIZE: 64
> LIBM: libopenlibm
> LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
> \`\`\`
> 
> \# Windows Subsystem for Linux
> \`\`\`
> julia\> versioninfo()
> Julia Version 1.6.0
> Commit f9720dc2eb (2021-03-24 12:55 UTC)
> Platform Info:
> OS: Linux (x86\_64-pc-linux-gnu)
> CPU: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
> WORD\_SIZE: 64
> LIBM: libopenlibm
> LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
> \`\`\`
> 
> \# Profiling
> 
> \## Protocol
> 
> \`\`\`
> julia\> using Profile
> julia\> Profile.clear()
> julia\> @profile using GR\_jll
> \`\`\`
> 
> \## Windows Profile
> 
> \`\`\`
> julia\> Profile.print(; maxdepth = 16)
> Overhead ╎ \[+additional indent\] Count File:Line; Function
> =========================================================
> ╎306 @Base\\client.jl:485; \_start()
> ╎ 306 @Base\\client.jl:302; exec\_options(opts::Base.JLOptions)
> ╎ 306 @Base\\client.jl:372; run\_main\_repl(interactive::Bool, quiet::Bool, banner::B...
> ╎ 306 @Base\\essentials.jl:706; invokelatest
> ╎ 306 @Base\\essentials.jl:708; #invokelatest#2
> ╎ 306 @Base\\client.jl:387; (::Base.var"#874#876"{Bool, Bool, Bool})(REPL::Module)
> ╎ ╎ 306 ...julia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:305; run\_repl(repl::REPL.AbstractREPL, consumer::Any)
> ╎ ╎ 306 ...julia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:317; run\_repl(repl::REPL.AbstractREPL, consumer::Any; bac...
> ╎ ╎ 306 ...ulia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:185; start\_repl\_backend(backend::REPL.REPLBackend, consum...
> ╎ ╎ 306 ...ulia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:200; repl\_backend\_loop(backend::REPL.REPLBackend)
> ╎ ╎ 306 ...ulia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:139; eval\_user\_input(ast::Any, backend::REPL.REPLBackend)
> 1╎ ╎ ╎ 306 @Base\\boot.jl:360; eval
> ╎ ╎ ╎ 305 @Base\\loading.jl:901; require(into::Module, mod::Symbol)
> ╎ ╎ ╎ 305 @Base\\loading.jl:914; require(uuidkey::Base.PkgId)
> ╎ ╎ ╎ 1 @Base\\loading.jl:987; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 1 @Base\\loading.jl:290; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:396; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ 304 @Base\\loading.jl:998; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 1 @Base\\loading.jl:734; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:641; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ 63 @Base\\loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 55 @Base\\loading.jl:1716; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ ╎ 8 @Base\\loading.jl:1750; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ 2 @Base\\loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 2 @Base\\file.jl:426; touch(path::String)
> ╎ ╎ ╎ 228 @Base\\loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 228 @Base\\loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId,...
> ╎ ╎ ╎ 10 @Base\\loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 10 @Base\\loading.jl:674; \_include\_from\_serialized(path::String, depmods:...
> Total snapshots: 314
> \`\`\`
> 
> \### Expansion of \`@Base/loading:998\` (maxdepth = 18)
> 
> \`\`\`
> ╎ ╎ ╎ 304 @Base\\loading.jl:998; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 1 @Base\\loading.jl:734; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:641; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:14; isfile\_casesensitive(path::String)
> 1╎ ╎ ╎ ╎ 1 @Base\\path.jl:406; longpath(path::String)
> ╎ ╎ ╎ 63 @Base\\loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 55 @Base\\loading.jl:1716; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 9 @Base\\loading.jl:0; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 9 @Base\\initdefs.jl:313; load\_path()
> ╎ ╎ ╎ ╎ 32 @Base\\loading.jl:290; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 8 @Base\\loading.jl:388; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 5 @Base\\loading.jl:390; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 17 @Base\\loading.jl:396; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:399; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 14 @Base\\loading.jl:291; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 3 @Base\\loading.jl:464; entry\_path(path::String, name::String)
> ╎ ╎ ╎ ╎ 11 @Base\\loading.jl:466; entry\_path(path::String, name::String)
> ╎ ╎ ╎ ╎ 8 @Base\\loading.jl:1750; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:253; identify\_package(where::Base.PkgId, name::String)
> ╎ ╎ ╎ ╎ 1 @Base\\initdefs.jl:313; load\_path()
> ╎ ╎ ╎ ╎ 7 @Base\\loading.jl:254; identify\_package(where::Base.PkgId, name::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:369; manifest\_deps\_get(env::String, where::Base.PkgId, name::String)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:372; manifest\_deps\_get(env::String, where::Base.PkgId, name::String)
> ╎ ╎ ╎ ╎ 4 @Base\\loading.jl:379; manifest\_deps\_get(env::String, where::Base.PkgId, name::String)
> ╎ ╎ ╎ 2 @Base\\loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 2 @Base\\file.jl:426; touch(path::String)
> ╎ ╎ ╎ ╎ 2 @Base\\filesystem.jl:87; open(path::String, flags::UInt16, mode::UInt16)
> ╎ ╎ ╎ ╎ 2 @Base\\strings\\io.jl:174; string
> ╎ ╎ ╎ 228 @Base\\loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 228 @Base\\loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId, build\_id::UInt64, modpath::String)
> ╎ ╎ ╎ ╎ 16 @Base\\loading.jl:734; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:634; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:635; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 11 @Base\\loading.jl:641; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:647; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 124 @Base\\loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:1691; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:1693; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 3 @Base\\loading.jl:1697; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 29 @Base\\loading.jl:1716; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 4 @Base\\loading.jl:1744; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 71 @Base\\loading.jl:1750; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:1759; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:1767; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 10 @Base\\loading.jl:1773; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:1784; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 51 @Base\\loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 51 @Base\\loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId, build\_id::UInt64, modpath::String)
> ╎ ╎ ╎ ╎ 37 @Base\\loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> 6╎ ╎ ╎ ╎ 6 @Base\\loading.jl:658; \_include\_from\_serialized(path::String, depmods::Vector{Any})
> 4╎ ╎ ╎ ╎ 31 @Base\\loading.jl:674; \_include\_from\_serialized(path::String, depmods::Vector{Any})
> ╎ ╎ ╎ 10 @Base\\loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 10 @Base\\loading.jl:674; \_include\_from\_serialized(path::String, depmods::Vector{Any})
> ╎ ╎ ╎ ╎ 10 @Base\\libdl.jl:114; dlopen(s::String, flags::UInt32)
> 10╎ ╎ ╎ ╎ 10 @Base\\libdl.jl:114; dlopen(s::String, flags::UInt32; throw\_error::Bool)
> \`\`\`
> 
> \## Windows Subsystem for Linux Profile
> 
> \`\`\`
> julia\> Profile.print(; maxdepth = 16)
> Overhead ╎ \[+additional indent\] Count File:Line; Function
> =========================================================
> ╎61 @Base/client.jl:485; \_start()
> ╎ 61 @Base/client.jl:302; exec\_options(opts::Base.JLOptions)
> ╎ 61 @Base/client.jl:372; run\_main\_repl(interactive::Bool, quiet::Bool, banner::Boo...
> ╎ 61 @Base/essentials.jl:706; invokelatest
> ╎ 61 @Base/essentials.jl:708; #invokelatest#2
> ╎ 61 @Base/client.jl:387; (::Base.var"#874#876"{Bool, Bool, Bool})(REPL::Module)
> ╎ ╎ 61 .../julia/stdlib/v1.6/REPL/src/REPL.jl:305; run\_repl(repl::REPL.AbstractREPL, consumer::Any)
> ╎ ╎ 61 .../julia/stdlib/v1.6/REPL/src/REPL.jl:317; run\_repl(repl::REPL.AbstractREPL, consumer::Any; backe...
> ╎ ╎ 61 ...julia/stdlib/v1.6/REPL/src/REPL.jl:185; start\_repl\_backend(backend::REPL.REPLBackend, consume...
> ╎ ╎ 61 ...julia/stdlib/v1.6/REPL/src/REPL.jl:200; repl\_backend\_loop(backend::REPL.REPLBackend)
> ╎ ╎ 61 ...ulia/stdlib/v1.6/REPL/src/REPL.jl:139; eval\_user\_input(ast::Any, backend::REPL.REPLBackend)
> 1╎ ╎ ╎ 61 @Base/boot.jl:360; eval
> ╎ ╎ ╎ 60 @Base/loading.jl:901; require(into::Module, mod::Symbol)
> ╎ ╎ ╎ 60 @Base/loading.jl:914; require(uuidkey::Base.PkgId)
> ╎ ╎ ╎ 60 @Base/loading.jl:998; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 3 @Base/loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 3 @Base/loading.jl:1716; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ 2 @Base/loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 2 @Base/file.jl:426; touch(path::String)
> ╎ ╎ ╎ 54 @Base/loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 54 @Base/loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId, ...
> ╎ ╎ ╎ 1 @Base/loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 1 @Base/loading.jl:674; \_include\_from\_serialized(path::String, depmods::...
> Total snapshots: 68
> \`\`\`
> 
> \### Expansion of \`@Base/loading:998\` (maxdepth = 18)
> \`\`\`
> ╎ ╎ ╎ 57 @Base/loading.jl:998; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 3 @Base/loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 3 @Base/loading.jl:1716; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base/loading.jl:0; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 1 @Base/initdefs.jl:313; load\_path()
> ╎ ╎ ╎ ╎ 2 @Base/loading.jl:290; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 2 @Base/loading.jl:396; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ 2 @Base/loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 2 @Base/file.jl:426; touch(path::String)
> ╎ ╎ ╎ ╎ 2 @Base/filesystem.jl:87; open(path::String, flags::UInt16, mode::UInt16)
> ╎ ╎ ╎ ╎ 2 @Base/strings/io.jl:174; string
> ╎ ╎ ╎ 52 @Base/loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 52 @Base/loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 9 @Base/loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 4 @Base/loading.jl:1716; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ ╎ 4 @Base/loading.jl:1750; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ ╎ 1 @Base/loading.jl:1773; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ ╎ 1 @Base/loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 1 @Base/file.jl:426; touch(path::String)
> ╎ ╎ ╎ ╎ 27 @Base/loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 27 @Base/loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId,...
> ╎ ╎ ╎ ╎ 15 @Base/loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> 4╎ ╎ ╎ ╎ 4 @Base/loading.jl:658; \_include\_from\_serialized(path::String, depmods:...
> 5╎ ╎ ╎ ╎ 11 @Base/loading.jl:674; \_include\_from\_serialized(path::String, depmods:...
> \`\`\`

Here’s the profile for Windows:

```julia
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

```

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [January 7, 2023, 3:03am UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/4 "2023-01-07T03:03:47Z")

</div>

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

> <https://github.com/JuliaLang/julia/issues/40570>
>
> \# Introduction
> 
> Code loading is 10x slower under Windows versus Windows Subsys…tem for Linux 2 (WSL 2) on the same machine for large binary packages such as \`GR\_jll\`:
> \`\`\`julia
> julia\> @time using GR\_jll # Windows, Julia 1.6.0
> 0.734392 seconds (361.12 k allocations: 24.173 MiB, 0.53% compilation time)
> 
> julia\> @time using GR\_jll # WSL, Julia 1.6.0
> 0.066454 seconds (192.13 k allocations: 14.770 MiB, 4.94% compilation time)
> \`\`\`
> 
> The difference is not as much with smaller packages:
> \`\`\`julia
> julia\> @time using ImarisWriter\_jll # Windows, Julia 1.6.0
> 0.274513 seconds (111.25 k allocations: 8.249 MiB, 1.31% compilation time)
> 
> julia\> @time using ImarisWriter\_jll
> 0.052826 seconds (64.77 k allocations: 5.350 MiB, 6.94% compilation time)
> \`\`\`
> 
> \# Windows
> \`\`\`
> julia\> versioninfo()
> Julia Version 1.6.0
> Commit f9720dc2eb (2021-03-24 12:55 UTC)
> Platform Info:
> OS: Windows (x86\_64-w64-mingw32)
> CPU: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
> WORD\_SIZE: 64
> LIBM: libopenlibm
> LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
> \`\`\`
> 
> \# Windows Subsystem for Linux
> \`\`\`
> julia\> versioninfo()
> Julia Version 1.6.0
> Commit f9720dc2eb (2021-03-24 12:55 UTC)
> Platform Info:
> OS: Linux (x86\_64-pc-linux-gnu)
> CPU: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
> WORD\_SIZE: 64
> LIBM: libopenlibm
> LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
> \`\`\`
> 
> \# Profiling
> 
> \## Protocol
> 
> \`\`\`
> julia\> using Profile
> julia\> Profile.clear()
> julia\> @profile using GR\_jll
> \`\`\`
> 
> \## Windows Profile
> 
> \`\`\`
> julia\> Profile.print(; maxdepth = 16)
> Overhead ╎ \[+additional indent\] Count File:Line; Function
> =========================================================
> ╎306 @Base\\client.jl:485; \_start()
> ╎ 306 @Base\\client.jl:302; exec\_options(opts::Base.JLOptions)
> ╎ 306 @Base\\client.jl:372; run\_main\_repl(interactive::Bool, quiet::Bool, banner::B...
> ╎ 306 @Base\\essentials.jl:706; invokelatest
> ╎ 306 @Base\\essentials.jl:708; #invokelatest#2
> ╎ 306 @Base\\client.jl:387; (::Base.var"#874#876"{Bool, Bool, Bool})(REPL::Module)
> ╎ ╎ 306 ...julia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:305; run\_repl(repl::REPL.AbstractREPL, consumer::Any)
> ╎ ╎ 306 ...julia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:317; run\_repl(repl::REPL.AbstractREPL, consumer::Any; bac...
> ╎ ╎ 306 ...ulia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:185; start\_repl\_backend(backend::REPL.REPLBackend, consum...
> ╎ ╎ 306 ...ulia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:200; repl\_backend\_loop(backend::REPL.REPLBackend)
> ╎ ╎ 306 ...ulia\\stdlib\\v1.6\\REPL\\src\\REPL.jl:139; eval\_user\_input(ast::Any, backend::REPL.REPLBackend)
> 1╎ ╎ ╎ 306 @Base\\boot.jl:360; eval
> ╎ ╎ ╎ 305 @Base\\loading.jl:901; require(into::Module, mod::Symbol)
> ╎ ╎ ╎ 305 @Base\\loading.jl:914; require(uuidkey::Base.PkgId)
> ╎ ╎ ╎ 1 @Base\\loading.jl:987; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 1 @Base\\loading.jl:290; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:396; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ 304 @Base\\loading.jl:998; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 1 @Base\\loading.jl:734; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:641; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ 63 @Base\\loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 55 @Base\\loading.jl:1716; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ ╎ 8 @Base\\loading.jl:1750; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ 2 @Base\\loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 2 @Base\\file.jl:426; touch(path::String)
> ╎ ╎ ╎ 228 @Base\\loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 228 @Base\\loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId,...
> ╎ ╎ ╎ 10 @Base\\loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 10 @Base\\loading.jl:674; \_include\_from\_serialized(path::String, depmods:...
> Total snapshots: 314
> \`\`\`
> 
> \### Expansion of \`@Base/loading:998\` (maxdepth = 18)
> 
> \`\`\`
> ╎ ╎ ╎ 304 @Base\\loading.jl:998; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 1 @Base\\loading.jl:734; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:641; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:14; isfile\_casesensitive(path::String)
> 1╎ ╎ ╎ ╎ 1 @Base\\path.jl:406; longpath(path::String)
> ╎ ╎ ╎ 63 @Base\\loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 55 @Base\\loading.jl:1716; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 9 @Base\\loading.jl:0; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 9 @Base\\initdefs.jl:313; load\_path()
> ╎ ╎ ╎ ╎ 32 @Base\\loading.jl:290; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 8 @Base\\loading.jl:388; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 5 @Base\\loading.jl:390; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 17 @Base\\loading.jl:396; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:399; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 14 @Base\\loading.jl:291; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 3 @Base\\loading.jl:464; entry\_path(path::String, name::String)
> ╎ ╎ ╎ ╎ 11 @Base\\loading.jl:466; entry\_path(path::String, name::String)
> ╎ ╎ ╎ ╎ 8 @Base\\loading.jl:1750; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:253; identify\_package(where::Base.PkgId, name::String)
> ╎ ╎ ╎ ╎ 1 @Base\\initdefs.jl:313; load\_path()
> ╎ ╎ ╎ ╎ 7 @Base\\loading.jl:254; identify\_package(where::Base.PkgId, name::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:369; manifest\_deps\_get(env::String, where::Base.PkgId, name::String)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:372; manifest\_deps\_get(env::String, where::Base.PkgId, name::String)
> ╎ ╎ ╎ ╎ 4 @Base\\loading.jl:379; manifest\_deps\_get(env::String, where::Base.PkgId, name::String)
> ╎ ╎ ╎ 2 @Base\\loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 2 @Base\\file.jl:426; touch(path::String)
> ╎ ╎ ╎ ╎ 2 @Base\\filesystem.jl:87; open(path::String, flags::UInt16, mode::UInt16)
> ╎ ╎ ╎ ╎ 2 @Base\\strings\\io.jl:174; string
> ╎ ╎ ╎ 228 @Base\\loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 228 @Base\\loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId, build\_id::UInt64, modpath::String)
> ╎ ╎ ╎ ╎ 16 @Base\\loading.jl:734; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:634; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:635; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 11 @Base\\loading.jl:641; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:647; find\_all\_in\_cache\_path(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 124 @Base\\loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:1691; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 2 @Base\\loading.jl:1693; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 3 @Base\\loading.jl:1697; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 29 @Base\\loading.jl:1716; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 4 @Base\\loading.jl:1744; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 71 @Base\\loading.jl:1750; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:1759; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:1767; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 10 @Base\\loading.jl:1773; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base\\loading.jl:1784; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 51 @Base\\loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 51 @Base\\loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId, build\_id::UInt64, modpath::String)
> ╎ ╎ ╎ ╎ 37 @Base\\loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> 6╎ ╎ ╎ ╎ 6 @Base\\loading.jl:658; \_include\_from\_serialized(path::String, depmods::Vector{Any})
> 4╎ ╎ ╎ ╎ 31 @Base\\loading.jl:674; \_include\_from\_serialized(path::String, depmods::Vector{Any})
> ╎ ╎ ╎ 10 @Base\\loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId, sourcepath::String)
> ╎ ╎ ╎ ╎ 10 @Base\\loading.jl:674; \_include\_from\_serialized(path::String, depmods::Vector{Any})
> ╎ ╎ ╎ ╎ 10 @Base\\libdl.jl:114; dlopen(s::String, flags::UInt32)
> 10╎ ╎ ╎ ╎ 10 @Base\\libdl.jl:114; dlopen(s::String, flags::UInt32; throw\_error::Bool)
> \`\`\`
> 
> \## Windows Subsystem for Linux Profile
> 
> \`\`\`
> julia\> Profile.print(; maxdepth = 16)
> Overhead ╎ \[+additional indent\] Count File:Line; Function
> =========================================================
> ╎61 @Base/client.jl:485; \_start()
> ╎ 61 @Base/client.jl:302; exec\_options(opts::Base.JLOptions)
> ╎ 61 @Base/client.jl:372; run\_main\_repl(interactive::Bool, quiet::Bool, banner::Boo...
> ╎ 61 @Base/essentials.jl:706; invokelatest
> ╎ 61 @Base/essentials.jl:708; #invokelatest#2
> ╎ 61 @Base/client.jl:387; (::Base.var"#874#876"{Bool, Bool, Bool})(REPL::Module)
> ╎ ╎ 61 .../julia/stdlib/v1.6/REPL/src/REPL.jl:305; run\_repl(repl::REPL.AbstractREPL, consumer::Any)
> ╎ ╎ 61 .../julia/stdlib/v1.6/REPL/src/REPL.jl:317; run\_repl(repl::REPL.AbstractREPL, consumer::Any; backe...
> ╎ ╎ 61 ...julia/stdlib/v1.6/REPL/src/REPL.jl:185; start\_repl\_backend(backend::REPL.REPLBackend, consume...
> ╎ ╎ 61 ...julia/stdlib/v1.6/REPL/src/REPL.jl:200; repl\_backend\_loop(backend::REPL.REPLBackend)
> ╎ ╎ 61 ...ulia/stdlib/v1.6/REPL/src/REPL.jl:139; eval\_user\_input(ast::Any, backend::REPL.REPLBackend)
> 1╎ ╎ ╎ 61 @Base/boot.jl:360; eval
> ╎ ╎ ╎ 60 @Base/loading.jl:901; require(into::Module, mod::Symbol)
> ╎ ╎ ╎ 60 @Base/loading.jl:914; require(uuidkey::Base.PkgId)
> ╎ ╎ ╎ 60 @Base/loading.jl:998; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 3 @Base/loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 3 @Base/loading.jl:1716; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ 2 @Base/loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 2 @Base/file.jl:426; touch(path::String)
> ╎ ╎ ╎ 54 @Base/loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 54 @Base/loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId, ...
> ╎ ╎ ╎ 1 @Base/loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 1 @Base/loading.jl:674; \_include\_from\_serialized(path::String, depmods::...
> Total snapshots: 68
> \`\`\`
> 
> \### Expansion of \`@Base/loading:998\` (maxdepth = 18)
> \`\`\`
> ╎ ╎ ╎ 57 @Base/loading.jl:998; \_require(pkg::Base.PkgId)
> ╎ ╎ ╎ 3 @Base/loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 3 @Base/loading.jl:1716; stale\_cachefile(modpath::String, cachefile::String)
> ╎ ╎ ╎ ╎ 1 @Base/loading.jl:0; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 1 @Base/initdefs.jl:313; load\_path()
> ╎ ╎ ╎ ╎ 2 @Base/loading.jl:290; locate\_package(pkg::Base.PkgId)
> ╎ ╎ ╎ ╎ 2 @Base/loading.jl:396; manifest\_uuid\_path(env::String, pkg::Base.PkgId)
> ╎ ╎ ╎ 2 @Base/loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 2 @Base/file.jl:426; touch(path::String)
> ╎ ╎ ╎ ╎ 2 @Base/filesystem.jl:87; open(path::String, flags::UInt16, mode::UInt16)
> ╎ ╎ ╎ ╎ 2 @Base/strings/io.jl:174; string
> ╎ ╎ ╎ 52 @Base/loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 52 @Base/loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId, ...
> ╎ ╎ ╎ ╎ 9 @Base/loading.jl:736; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 4 @Base/loading.jl:1716; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ ╎ 4 @Base/loading.jl:1750; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ ╎ 1 @Base/loading.jl:1773; stale\_cachefile(modpath::String, cachefile::St...
> ╎ ╎ ╎ ╎ 1 @Base/loading.jl:741; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 1 @Base/file.jl:426; touch(path::String)
> ╎ ╎ ╎ ╎ 27 @Base/loading.jl:749; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> ╎ ╎ ╎ ╎ 27 @Base/loading.jl:689; \_tryrequire\_from\_serialized(modkey::Base.PkgId,...
> ╎ ╎ ╎ ╎ 15 @Base/loading.jl:760; \_require\_search\_from\_serialized(pkg::Base.PkgId,...
> 4╎ ╎ ╎ ╎ 4 @Base/loading.jl:658; \_include\_from\_serialized(path::String, depmods:...
> 5╎ ╎ ╎ ╎ 11 @Base/loading.jl:674; \_include\_from\_serialized(path::String, depmods:...
> \`\`\`

Here is a profile for Windows:

```julia
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

```

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [January 12, 2023, 1:43pm UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/5 "2023-01-12T13:43:52Z")

</div>

I can not repro this:

Windows:

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

```

WSL:

```julia
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.

---

<div class="post-metadata">

**Author:** ![bjarthur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bjarthur/32/9638_2.png) [@bjarthur](https://discourse.julialang.org/u/bjarthur)\
**Post date:** [December 21, 2023, 11:17pm UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/6 "2023-12-21T23:17:22Z")

</div>

@kristoffer.carlsson did you try WSL (as you said) or WSL2 (as @mkitti) said? i believe it should be a big difference (WSL2 faster than WSL).

---

<div class="post-metadata">

**Author:** ![Wen-Wei\_Tseng](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wen-wei_tseng/32/28839_2.png) [@Wen-Wei\_Tseng](https://discourse.julialang.org/u/Wen-Wei_Tseng)\
**Post date:** [December 22, 2023, 1:56am UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/7 "2023-12-22T01:56:05Z")

</div>

My results in Julia 1.9.4

Windows 10

```julia
@time_imports using GR
      9.6 ms Preferences
...
      108.6 ms GR

```

Same machine, same disk on WSL2 (Ubuntu 22.04)

```julia
 @time_imports using GR
      8.8 ms Preferences
...
      32.3 ms GR

```

> **Full output**
>
> Windows 10
> 
> ```julia
> @time_imports using GR
> 9.6 ms Preferences
> 0.4 ms JLLWrappers
> 4.9 ms Bzip2_jll 87.56% compilation time
> 0.9 ms Libiconv_jll
> 0.4 ms Libffi_jll
> 4.5 ms CompilerSupportLibraries_jll 90.18% compilation time
> 0.2 ms Zlib_jll
> 0.7 ms XML2_jll
> 0.6 ms Gettext_jll
> 0.4 ms PCRE2_jll
> 2.5 ms Glib_jll
> 0.9 ms Pixman_jll
> 1.0 ms libpng_jll
> 0.8 ms FreeType2_jll
> 0.2 ms Libuuid_jll
> 0.6 ms Expat_jll
> 5.0 ms Fontconfig_jll 80.13% compilation time
> 0.6 ms LZO_jll
> 2.0 ms Cairo_jll
> 0.6 ms FriBidi_jll
> 0.6 ms Graphite2_jll
> 1.0 ms HarfBuzz_jll
> 0.8 ms libass_jll
> 1.1 ms libfdk_aac_jll
> 0.6 ms LAME_jll
> 0.6 ms Ogg_jll
> 1.0 ms libvorbis_jll
> 1.2 ms libaom_jll
> 0.7 ms x264_jll
> 0.9 ms x265_jll
> 1.2 ms OpenSSL_jll
> 0.8 ms Opus_jll
> 5.1 ms FFMPEG_jll
> 0.7 ms GLFW_jll
> 1.2 ms JpegTurbo_jll
> 0.8 ms LERC_jll
> 0.8 ms XZ_jll
> 0.7 ms Zstd_jll
> 0.7 ms Libtiff_jll
> 0.3 ms libinput_jll
> 0.2 ms Xorg_libXext_jll
> 0.2 ms Xorg_libxcb_jll
> 0.3 ms Xorg_xcb_util_wm_jll
> 0.3 ms Xorg_xcb_util_cursor_jll
> 0.3 ms Xorg_xcb_util_image_jll
> 0.3 ms Xorg_xcb_util_keysyms_jll
> 0.3 ms Xorg_xcb_util_renderutil_jll
> 0.3 ms Xorg_libXrender_jll
> 14.7 ms Xorg_libSM_jll
> 0.3 ms xkbcommon_jll
> 0.2 ms Libglvnd_jll
> 1.0 ms Vulkan_Loader_jll
> 8.5 ms Qt6Base_jll
> 0.8 ms GR_jll
> 108.6 ms GR
> 
> ```
> 
> WSL2 (Ubuntu, 22.04)
> 
> ```julia
> @time_imports using GR
> 8.8 ms Preferences
> 0.3 ms JLLWrappers
> 4.1 ms Bzip2_jll 91.69% compilation time
> 0.5 ms Libiconv_jll
> 0.2 ms Libffi_jll
> 4.1 ms CompilerSupportLibraries_jll 90.51% compilation time
> 0.1 ms Zlib_jll
> 0.3 ms XML2_jll
> 0.3 ms Gettext_jll
> 0.1 ms PCRE2_jll
> 0.2 ms Libmount_jll
> 0.6 ms Glib_jll
> 0.2 ms Pixman_jll
> 0.2 ms libpng_jll
> 0.2 ms FreeType2_jll
> 0.2 ms Libuuid_jll
> 0.2 ms Expat_jll
> 3.2 ms Fontconfig_jll 89.00% compilation time
> 0.3 ms Libgpg_error_jll
> 0.2 ms Libgcrypt_jll
> 0.3 ms XSLT_jll
> 0.2 ms Xorg_libXau_jll
> 0.2 ms Xorg_libXdmcp_jll
> 0.1 ms Xorg_libpthread_stubs_jll
> 1.2 ms Xorg_libxcb_jll
> 0.1 ms Xorg_xtrans_jll
> 0.3 ms Xorg_libX11_jll
> 0.2 ms Xorg_libXext_jll
> 0.2 ms Xorg_libXrender_jll
> 0.2 ms LZO_jll
> 0.6 ms Cairo_jll
> 0.2 ms FriBidi_jll
> 0.2 ms Graphite2_jll
> 0.3 ms HarfBuzz_jll
> 0.2 ms libass_jll
> 0.2 ms libfdk_aac_jll
> 0.2 ms LAME_jll
> 0.2 ms Ogg_jll
> 0.3 ms libvorbis_jll
> 0.3 ms libaom_jll
> 0.3 ms x264_jll
> 0.2 ms x265_jll
> 0.5 ms OpenSSL_jll
> 0.2 ms Opus_jll
> 1.5 ms FFMPEG_jll
> 0.7 ms Libglvnd_jll
> 0.2 ms Xorg_libXfixes_jll
> 0.2 ms Xorg_libXcursor_jll
> 0.2 ms Xorg_libXi_jll
> 0.2 ms Xorg_libXinerama_jll
> 0.2 ms Xorg_libXrandr_jll
> 0.2 ms GLFW_jll
> 0.3 ms JpegTurbo_jll
> 0.2 ms LERC_jll
> 0.3 ms XZ_jll
> 0.2 ms Zstd_jll
> 0.2 ms Libtiff_jll
> 0.1 ms gperf_jll
> 0.2 ms eudev_jll
> 0.2 ms mtdev_jll
> 0.2 ms libevdev_jll
> 0.2 ms libinput_jll
> 0.2 ms Xorg_xcb_util_jll
> 0.2 ms Xorg_xcb_util_wm_jll
> 0.2 ms Xorg_xcb_util_image_jll
> 0.2 ms Xorg_xcb_util_renderutil_jll
> 0.3 ms Xorg_xcb_util_cursor_jll
> 0.2 ms Xorg_xcb_util_keysyms_jll
> 13.0 ms Xorg_libICE_jll
> 11.5 ms Xorg_libSM_jll
> 0.4 ms Xorg_libxkbfile_jll
> 0.2 ms Xorg_xkbcomp_jll
> 0.2 ms Xorg_xkeyboard_config_jll
> 0.1 ms EpollShim_jll
> 0.4 ms Wayland_jll
> 0.1 ms Wayland_protocols_jll
> 0.3 ms xkbcommon_jll
> 0.3 ms Vulkan_Loader_jll
> 3.2 ms Qt6Base_jll
> 0.4 ms GR_jll
> 32.3 ms GR
> 
> ```

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [December 22, 2023, 4:24am UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/8 "2023-12-22T04:24:54Z")

</div>

At first glance I’m not sure that there’s actually an issue here, considering that comparing package loading on different OS-es feels like comparing apples to oranges. The functionality that’s being loaded is not the same.

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [December 22, 2023, 4:29am UTC](https://discourse.julialang.org/t/windows-is-slower-than-wsl2-in-loading-gr-preferences-julia-1-9-0-beta2/92623/9 "2023-12-22T04:29:32Z")

</div>

> [@Wen-Wei\_Tseng](#):
>
> ```julia
> 0.3 ms libinput_jll
> 0.2 ms Xorg_libXext_jll
> 0.2 ms Xorg_libxcb_jll
> 0.3 ms Xorg_xcb_util_wm_jll
> 0.3 ms Xorg_xcb_util_cursor_jll
> 0.3 ms Xorg_xcb_util_image_jll
> 0.3 ms Xorg_xcb_util_keysyms_jll
> 0.3 ms Xorg_xcb_util_renderutil_jll
> 0.3 ms Xorg_libXrender_jll
> 14.7 ms Xorg_libSM_jll
> 0.3 ms xkbcommon_jll
> 
> ```

Presumably Xorg and libinput are useless on Windows without WSL, so they wouldn’t be getting loaded at all ideally.
