Julia installation file sizes

Hi,

Julia install sizes has been steadily growing in size. It was on the range 400-600 MB for versions < 1.10 (can’t remember anymore) and is.
v1.10 ~700 MB
v1.11 ~870 MB
v112 ~0.99 GB (nightly)

I found that the main responsible for this size increases is the contents of the ...share\julia\compiled\v1.XX directory, that for nightly has ~437 MB (~44 MB for Julia 1.10).

But the weirdest of all is that all shared libs in those directories are duplicated. For example:

C:\programs\Julia-1.12\share\julia\compiled\v1.12\Pkg>dir
 Volume in drive C is OS
 Volume Serial Number is B071-46FE

 Directory of C:\programs\Julia-1.12\share\julia\compiled\v1.12\Pkg

08/21/2024  05:19 PM    <DIR>          .
08/21/2024  05:19 PM    <DIR>          ..
08/18/2024  05:05 AM        85,742,592 tUTdb_e6ieL.dll
08/21/2024  05:33 PM           599,714 tUTdb_e6ieL.ji
08/18/2024  05:05 AM        94,069,248 tUTdb_Miz3B.dll
08/21/2024  06:01 PM           599,714 tUTdb_Miz3B.ji

Is this intended to be like that or some environment duplication during Julia building is making it this way?

1 Like

I believe during the build stdlibs are precompiled with different configurations, which results in multiple (which is different from duplicate, which suggests they are the same thing) libraries.

Yes, duplication was not a good word, sorry, but the question remains. Why do we want multiple configurations and hence file size ~duplication?

To avoid having to wait to compile stdlibs in different cases.

1 Like

I believe the specific configurations are the ones for regular running and the ones for testing (testing has code coverage and bounds-check=true iirc)

4 Likes

Testing as for when we run package tests for example?

1 Like

yes.

If you want to delete either/all except main, is there a way to find out which is which?

Coming back to this. I made this experiment with Julia nightly. Since I noticed that when running tests a second precompile cache dll is generated and is bigger than the regular one, I went to ...\Julia-1.12\share\julia\compiled\v1.12, looked for the name termination of the larger .dll (sorry, did not take note of it) and deleted all of those dlls. That shaved 189 MB in that directory. Next run the GMT tests and all went fine. So, again, are those double dlls really needed?

1 Like