Hi :) On Fri 24 Jun 2016 10:28, l...@gnu.org (Ludovic Courtès) writes:
> Hello! > > Andy Wingo <wi...@pobox.com> skribis: > >> On Thu 23 Jun 2016 15:06, l...@gnu.org (Ludovic Courtès) writes: >> >>> ‘canonicalize_file_name’ is costly: roughly one syscall per file name >>> component. >>> >>> IIUC, ‘canonicalize_file_name’ is now called once for each ‘%load-path’ >>> entry and file name that we canonicalize. Is this correct? >> >> That's correct, but only for relative canonicalization, which is in >> practive only when loading Scheme files from source. Seems out of the >> hot path; what do you think? > > I think it’s likely to have a noticeable impact on startup time for > projects with a large number of modules like Guix. Aren't they usually compiled? Loading compiled files will not go through this path AFAIU. > For instance, commands like ‘guix package -A’ or ‘guix build foo’ load > all the modules. The impact will be smaller on a laptop with an SSD > than on an NFS mount, where it’s likely going to be terrrible (this > could be tested using the ‘delay’ device mapper.) Oh I'm with you that we need to be careful here. I am under the impression though that there's no additional impact here because this is just something that happens at compile-time. Or if you load a source file, but in that case you're evaluating and expecting a perf loss is not the end of the world. Andy