https://github.com/fonsp/package-loading-times
Automated script to measure the loading time of every Julia package
https://github.com/fonsp/package-loading-times
Last synced: 2 months ago
JSON representation
Automated script to measure the loading time of every Julia package
- Host: GitHub
- URL: https://github.com/fonsp/package-loading-times
- Owner: fonsp
- License: mit
- Created: 2022-09-06T19:54:46.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-09-18T11:36:43.000Z (9 months ago)
- Last Synced: 2025-12-26T15:10:23.440Z (5 months ago)
- Language: Julia
- Homepage:
- Size: 1000 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# package-loading-times
Automated script to measure the **precompilation, installation and loading** time of every package.
> *Read the [**interactive notebook** online](https://featured.plutojl.org/basic/package%20latency) to play with the parameters, and pick other packages.*
# 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](https://discourse.julialang.org/t/announcing-package-download-stats/69073) to find out which packages are the most popular.
For the 1000 most popular packages, we use [RegistryInstances.jl](https://github.com/GunnarFarneback/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 TOML file that looks like this: https://github.com/fonsp/package-loading-times/blob/results-v1/2025-04-14_10-54-53-757_julia_1.10.9/pkg_load_times.toml (TODO this is a test run with only the top 20 packages)
# Use in Pluto.jl
This data is used by Pluto to give an estimate for installation time:

*See the [PR](https://github.com/fonsp/Pluto.jl/pull/2672) for more information*.
# Results
You can explore the results in an interactive dashboard in [this online notebook](https://featured.plutojl.org/basic/package%20latency). The notebook is stored in https://github.com/JuliaPluto/featured , feel free to make a PR to contribute to it.
You can see all result data in the [`results_v1` branch](https://github.com/fonsp/package-loading-times/tree/results-v1).
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
You can get the old results for Julia 1.9 Ubuntu here: (these are used by the Pluto.jl GUI)
https://julia-loading-times-test.netlify.app/pkg_load_times.csv
https://julia-loading-times-test.netlify.app/top_packages_sorted_with_deps.txt