|
From: | Dmitry Gutov |
Subject: | bug#34343: [PATCH] Make project--find-regexp-in-files work with remote files |
Date: | Mon, 6 Jan 2020 17:33:06 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 |
Hi Michael, On 03.01.2020 11:28, Michael Albinus wrote:
Yes. But in case you want to be generic (handling all possible remote file names, not only the Tramp implementation), you must use the file name handler implementation, as it is described in (info "(elisp) Magic File Names")
As I've shown before, the generic dispatch is far from being the bottleneck at the moment. tramp-file-name-handler doing a lot of unrelated work is what takes the most time.
In case you want to go your own path, I could provide you an own tramp-file-local-name function, which bypasses this mechanism:
Thank you. I see you've already pushed this function to the release branch.I could use it like this, sure, but we can have a significant performance improvement and keep the generic-ness at the same time.
The simplest option is below. It works fast enough in my testing (*); a bit slower than calling tramp-file-local-name directly, but not by much. Certainly much faster than the current state of affairs.
It's a bit messy, but I'm not sure how to structure the resulting function best. There are several ways, though. What do you think?
(*) The 1'000'000 files example was an extreme one, to optimize for when files are local. The 10'000 file project is a real one, on the other hand.
P.S. BTW, I think our convention is not to call save-match-data unless obviously required. If the caller needs to save the match data, it will use it itself.
tramp-local-name.diff
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |