[Bug 598282] Re: command-not-found slow for its task
Zygmunt Krynicki
zygmunt.krynicki at canonical.com
Fri Jul 22 02:03:52 UTC 2011
While I appreciate your enthusiasm and desire to fix this I have a few
comments:
1) Unless I missed something your implementation always reads the whole database file, I would rather avoid that.
2) The similar result search you employed is much weaker than the one used by current implementation, you do not look for any permutations of the input string, just for substrings.
3) Plan on how to migrate those features (or not) to your new implementation
4) Do not use hacks like the one with parsing apt files, in general they tend to strike back sooner than we expect.
4) Propose a merge request, start with a alternative implementation skeleton, then add new pieces one by one, I'll gladly review them.
5) Initially ensure that the output is the same, this will simplify testing. We can change the output of both implementations later if we so desire.
Thanks!
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to command-not-found in Ubuntu.
https://bugs.launchpad.net/bugs/598282
Title:
command-not-found slow for its task
Status in “command-not-found” package in Ubuntu:
Confirmed
Bug description:
Binary package hint: command-not-found
Considering command-not-found has a relatively simple job. It seems
that it is horribly over-engineered for its task. And as such, we have
runtimes such as this:
$ time sl
The program 'sl' is currently not installed. You can install it by typing:
sudo apt-get install sl
real 0m1.715s
user 0m0.680s
sys 0m0.228s
$ time sl
The program 'sl' is currently not installed. You can install it by typing:
sudo apt-get install sl
real 0m0.759s
user 0m0.592s
sys 0m0.116s
A little over a year ago I wrote a replacement script, that I've numerously lost, found, updated and forgotten about. It is about 250 LOC, and kept with one thing in mind, KISS. What surprises me most though is not the simplicity in comparison, but that it is 14x faster at executing it's job.
That script can be found here: http://ubuntuforums.org/showpost.php?p=7116396&postcount=1
And this is how well it runs in comparison.
$ time sl
The program 'sl' is currently not installed. You can install it by typing:
sudo apt-get install sl
real 0m0.079s
user 0m0.036s
sys 0m0.016s
$ time sl
The program 'sl' is currently not installed. You can install it by typing:
sudo apt-get install sl
real 0m0.062s
user 0m0.044s
sys 0m0.016s
You would be forgiven in thinking I used a compiled application to get such low times, but it is not, I tell you that now.
So the ultimate question is, why punish users? I think some act needs
to be gotten together to clamp down on the speed demons in this
application. As IMO, it is in an unacceptable state.
Regards
ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: command-not-found 0.2.40ubuntu5
ProcVersionSignature: Ubuntu 2.6.32-22.36-generic 2.6.32.11+drm33.2
Uname: Linux 2.6.32-22-generic i686
Architecture: i386
Date: Thu Jun 24 22:33:33 2010
PackageArchitecture: all
ProcEnviron:
LANG=en_GB.utf8
SHELL=/bin/bash
SourcePackage: command-not-found
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/command-not-found/+bug/598282/+subscriptions
More information about the foundations-bugs
mailing list