pinoaffe schreef op di 28-09-2021 om 16:39 [+0200]: > Hi, > > Maxime Devos writes: > > To only measure the time required for defiing 'importers', wrap > > delete-duplicates in a call to 'time' from (ice-9 time). > > Running > > (time (for-each (lambda (_) > (delete-duplicates (filter-map (lambda (module) > (match (module-name module) > (`(guix scripts import ,importer) > (symbol->string importer)) > (#t #f))) > (all-modules (map (lambda (entry) > `(,entry . "guix/scripts/import")) > %load-path))))) > (iota 1000))) > > in a guix repl on my system results in > > clock utime stime cutime cstime gctime > 0.96 1.67 0.07 0.00 0.00 1.19 > > If I'm interpreting that correctly that would amount to a couple of > thousands of a second per run These numbers turn out to be misleading, because 'scheme-modules' (indirectly called from all-modules) calls 'resolve-interface' on every module name. For a module name, the first 'resolve-module' incurs disk I/O and some CPU for loading the module, but the second 'resolve-module' on the same module name would be free, as the module is already loaded. Greetings, Maxime