[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#49421] [PATCH] profiles: Optimise 'fonts-dir-file'.
From: |
Ludovic Courtès |
Subject: |
[bug#49421] [PATCH] profiles: Optimise 'fonts-dir-file'. |
Date: |
Fri, 16 Jul 2021 18:05:49 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hi!
Maxime Devos <maximedevos@telenet.be> skribis:
> Ludovic Courtès schreef op wo 07-07-2021 om 18:52 [+0200]:
[...]
>> Do you know what’s taking time in the ‘fonts-dir-file’ hook?
>> (On my x86_64 laptop with SSD, it runs in 4.4s on a cold cache for a
>> profile containing 14 font packages, and in 1.2s on a warm cache.)
>
> I noticed ‘building fonts directories’ was taking long (9 minutes or so,
> when using "guix package -r two packages that don't have fonts"),
Ouch, that’s way more than what I’m observing. :-) Do you have a
manifest or package list to reproduce that? Were those timings on a
spinning disk?
> so I took the opportunity to "strace" the process, though I was a little late.
> Some statistics:
>
> % time seconds usecs/call calls errors syscall
> ------ ----------- ----------- --------- --------- ----------------
> 27,14 1,676551 117 14297 rename
> 19,60 1,211012 13 90829 8 lstat
> 18,34 1,133182 63 17787 15 statx
> 11,80 0,729185 51 14297 link
[...]
> statx(AT_FDCWD, "/gnu/store/.links/[...]my",
> AT_STATX_SYNC_AS_STAT|AT_SYMLINK_NOFOLLOW, 0, {stx_mask=STATX_ALL|>
> lstat("/gnu/store/.links/[...]my", {st_mode=S_IFLNK|0777, st_size=124, ...})
> = 0
> lstat("/gnu/store/[...]nm-fonts-dir/share/fonts/mathjax/HTML-CSS/TeX/png/AMS/Regular/283",
> {st_mode=S_IFDIR|0555, st_size=4112, ...>
> chmod("/gnu/store/[...]nm-fonts-dir/share/fonts/mathjax/HTML-CSS/TeX/png/AMS/Regular/283",
> 040755) = 0
> getpid() = 26371
> <end of log>
>
> It seems like ‘duplication’ is taking a lot of time!
It surely does but we need more data before we can draw a conclusion
(the system time above accounts for ~6 seconds, not 9 minutes).
Anyway, it looks like we should be able to push most of the I/O work to
packages. Let’s see!
Thanks,
Ludo’.