Geekices

Debugging build times

userrepository

Lately, the repository has been taking +10 hours to compile all the packages. I think that’s a lot for a little more than 250 packages, most of them small utilities and/or -bin files from AUR, built in a DEV1-L (4 cores, 8 Gb RAM) virtual machine from Scaleway.

After investigating the matter, I found out that 12 of the packages took four hours and sixteen minutes to build.

PkgHoursMinutes
./pueue/makepkg.log012
./ffsend/makepkg.log015
./joplin/makepkg.log015
./bandwhich/makepkg.log016
./session-desktop/makepkg.log017
./mindforger/makepkg.log017
./giada-git/makepkg.log017
./brackets/makepkg.log021
./newbreeze-git/makepkg.log024
./falkon-git/makepkg.log024
./newsflash-git/makepkg.log031
./firefox-kde-opensuse/makepkg.log047
256

I decided to give it a go at reducing the packages build time. The first set of changes I made were:

  • remove newsflash-git;
  • remove newbreeze-git;
  • remove giada-git;
  • replace firefox-kde-opensuse with firefox-kde-opensuse-rpm;
  • session-desktop with session-desktop-bin.

If you used any of the packages I removed, please let me know and I’ll add it again

Next, I inserted the MAKEFLAGS="-j4" environment variable in the config file, so that compilers use the four cores when possible.

PkgHoursMinutes
./brackets/makepkg.log020
./bamr/makepkg.log019
./falkon-git/makepkg.log019
./joplin/makepkg.log015
./ffsend/makepkg.log015
./mindforger/makepkg.log013
./pueue/makepkg.log012
./broot/makepkg.log07
./navi/makepkg.log07
./boostnote-bin/makepkg.log07
./qownnotes/makepkg.log07
./kitematic-git/makepkg.log06
147

With the above changes, the twelve “worst offenders” decrease to almost two and an half hours. The total build time is likely to decrease a little more after I take a look at what packages userrepository shares with chaotic-aur and decide which, if any, I should remove.

In the TODO list are also some tests to be made to the zstd compression level. The current level is 10, with the default being 3. I intend to see if the trade-off between the increase in package creation time and the reduction in package size is worth increasing the level to somewhere between 15 and 19, the highest preset level.

Eventually, I’ll begin to sign the packages. For now, enjoy the latest batch and become a patron.


Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.