#76: Slime (swank) fuzzy completion very slow -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: Component: other | Version: Keywords: | -------------------------+-------------------------------------------------- In [http://common-lisp.net/pipermail/armedbear-devel/2009-July/000062.html a mail to the development list], Anton Vodonosov writes about the relative speed of ABCL, CCL and Clisp on slime fuzzy completion.
ABCL is by far the slowest.
#76: Slime (swank) fuzzy completion very slow --------------------------+------------------------------------------------- Reporter: ehuelsmann | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: Component: other | Version: Resolution: | Keywords: --------------------------+-------------------------------------------------
Comment(by ehuelsmann):
To reproduce, in ABCL run (inside the slime/ directory):
{{{ $ abcl
(require 'asdf) (asdf:oos 'asdf:load-op :swank) (swank-loader::init :load-contribs t) }}}
For clisp, run in the same directory, with these commands:
{{{ $ clisp
(load "swank-loader") (swank-loader::init :load-contribs t) }}}
The form to be executed (and hence profiled) is:
{{{ (let ((swank::*buffer-package* *package*)) (swank::fuzzy-completions "de" 'cl-user))) }}}
Using (TIME ...) on the given form, ABCL returns 0.2 seconds, while clisp returns 0.08 seconds. Clearly, clisp still is a lot faster, but I'd be surprised if ABCL is still "intolerably slow".
#76: Slime (swank) fuzzy completion very slow --------------------------+------------------------------------------------- Reporter: ehuelsmann | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: Component: other | Version: Resolution: | Keywords: --------------------------+-------------------------------------------------
Comment(by ehuelsmann):
Hottest code - data collected with the hot spot profiler:
{{{ 24.1 65 SWANK::FUZZY-CONVERT-MATCHING-FOR-EMACS 26.3 71 SOME 35.9 97 SWANK::COMPUTE-MOST-COMPLETIONS 45.9 124 SWANK::RECURSIVELY-COMPUTE-MOST-COMPLETIONS 48.5 131 SWANK::COMPUTE-HIGHEST-SCORING-COMPLETION 71.5 193 SWANK::FUZZY-FIND-MATCHING-SYMBOLS 85.2 230 SWANK::FUZZY-GENERATE-MATCHINGS 100.0 270 SWANK::FUZZY-COMPLETION-SET }}}
Evaluate this form to reproduce:
{{{ (progn (prof:with-profiling () (let ((swank::*buffer-package* *package*)) (swank::fuzzy-completions "de" 'cl-user))) (prof:show-hot-counts)) }}}
#76: Slime (swank) fuzzy completion very slow --------------------------+------------------------------------------------- Reporter: ehuelsmann | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: unscheduled Component: other | Version: Resolution: | Keywords: performance --------------------------+------------------------------------------------- Changes (by ehuelsmann):
* keywords: => performance * milestone: => unscheduled
Comment:
Unscheduled. Waiting for someone to do more research; the hot-spot list still looks roughly the same.
armedbear-ticket@common-lisp.net