|
From: | Dmitry Gutov |
Subject: | bug#42966: 28.0.50; vc-dir: wrong backend |
Date: | Tue, 27 Oct 2020 00:11:07 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
On 26.10.2020 23:54, Glenn Morris wrote:
Dmitry Gutov wrote:That makes sense, but it's just a performance hack, isn't it? The result should be the same as the less invasive "loop over all the backends and collect the most specific one".Pretty much. Except it should naturally limit the traversal up the directory tree, so it feels like a good architecture, not just a "hack".Indeed, it just seems like the Right Thing to Do, not a hack. Not having been paying attention, I was surprised to see the adopted solution goes for "loop over every VC backend, and every directory up the tree, then filter the results", rather than "walk up the directory tree, stopping when a backend claims responsibility".
I didn't want to insist on it because upon some thinking it seemed to me that the remote case might be the only problematic one. And one-traversal-per-backend might be more optimizable by Tramp (e.g. via a mini-program) than one-check-per-directory-level. But perhaps the latter could be optimized using a file handler or an advice just as well.
I would think efficiency matters in such a frequent operation. As a (completely unscientific) data point, my first single core bootstrap build after this change took about 5% longer than before (22m5s v 21m4s). But of course a single measurement means nothing.
Was that with a rotating disk?A few more experiments should help, to establish whether that was a fluke or not.
[Prev in Thread] | Current Thread | [Next in Thread] |