[Asdf-devel] startup times and initialize-source-registry

Ben Hyde bhyde at pobox.com
Wed Aug 27 17:11:22 UTC 2014


My cl-launch scripts can take one second.

I can trim a half second off that with a disk-cache[2] of *source-registry*. 

Tedious details follow.

My cl-launch install defaults to using ccl.  My ccl install is currently HEAD.

My current setup has 3.8K working directories, which compute-source-registry scans.

Ok I have three little bash functions[1] to time things.
  try-ccl-  — run ccl with —no-init
  try-cl     — run cl-launch, so no init file; but it will load asdf.
  try-ccl   — run ccl with standard quicklisp init file

Without the disk cache.
  try-ccl-   0.03 seconds
  try-cl      1      seconds
  try-ccl    1      seconds

With the disk cache:
  try-ccl-  0.03 seconds
  try-cl     0.5 seconds
  try-ccl   0.5 seconds

These #’s are gleaned from batches of 10 runs so things can settle.

Theories for that remaining half a second need looking into.

 - ben

[1] The three bash functions
try-ccl-(){ (time ccl --no-init --eval '(progn (print (lisp-implementation-type)) (quit))') 2>&1 | grep real ; }
try-ccl(){ (time ccl --eval '(progn (print (lisp-implementation-type)) (quit))') 2>&1 | grep real ; }
try-cl(){ (time cl -ip '(lisp-implementation-type)') 2>&1 | grep real ; }

[2] A proof of concept disk cache...

 https://gist.github.com/bhyde/526c5acb38f341d60dba

So, anytime somebody rearranges the set of asdf systems they
are expected to invoke reset-quickasdf.

quickasdf horrible name - but it bemused me at the time.

Calling initialize-source-registry directly from the repl takes
0.47 seconds without the diskcache and .004 seconds with it.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20140827/73e0f824/attachment.html>


More information about the asdf-devel mailing list