fonsp / package-loading-times

Automated script to measure the loading time of every Julia package

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

package-loading-times

Automated script to measure the precompilation, installation and loading time of every package, and a tool to estimate how long a set of packages will take to install.

This data will be used by Pluto to give an estimate for installation time:

image

See the PR for more information.

How it works

Most popular packages and dependencies

In the first script, https://github.com/fonsp/package-loading-times/blob/main/most_downloaded_packages.jl we use the julialang pkg server statistics to find out which packages are the most popular.

For the 1000 most popular packages, we use RegistryInstances.jl to find dependencies between those packages.

The result is a txt file that looks like this: https://julia-loading-times-test.netlify.app/top_packages_sorted_with_deps.txt

Timing

The second script, https://github.com/fonsp/package-loading-times/blob/main/measure_loading_times.jl loops through the packages and does the timings.

For each package, we set up a temporary environment where we load all the dependencies first. Then, we can measure the installation (i.e. download), precompilation and first load of the single package in isolation.

The result is a csv file that looks like this: https://julia-loading-times-test.netlify.app/pkg_load_times.csv

Demo of calculator

The notebook estimate.jl can give you an estimate of how long a given set of dependencies will take to install. You need to have the files in your repository for this to work - you can generate them or download them.

Schermopname.2022-10-20.om.14.32.30.mov

Results

I am still working on a nice/automatic way to make the results public, but you can get the latest results for Julia 1.9 Ubuntu here:

https://julia-loading-times-test.netlify.app/pkg_load_times.csv

https://julia-loading-times-test.netlify.app/top_packages_sorted_with_deps.txt

To see more results for different Julia versions and OSes, check out the Artificats generated by the GHA runs: https://github.com/fonsp/package-loading-times/actions/workflows/main.yml

About

Automated script to measure the loading time of every Julia package

License:MIT License


Languages

Language:Julia 100.0%