From: Taylor Blau Date: Mon, 19 Oct 2020 17:37:24 GMT Subject: Re: [PATCH 1/4] fsmonitor: use fsmonitor data in `git diff` Message-ID: <20201019173724.GA42706@nand.local> In-Reply-To: On Mon, Oct 19, 2020 at 10:23:26AM -0700, Junio C Hamano wrote: > Taylor Blau writes: > > >> > There is some overhead to invoke the hook and talk to watchman, but > >> > I'd expect that to be dwarfed by not having to issue O(# files) > >> > syscalls. > >> > >> "invoke the hook"---is that a pipe+fork+exec, or something else that > >> is far lighter-weight? > > > > The former; see 'fsmonitor.c:query_fsmonitor()'. > > It brings us back to the "overhead of how many lstat(2) takes us > closer to the overhead of a single pipe+fork+exec plus reading from > the pipe", doesn't it? Somewhat unfortunately, yes. Hopefully any user that cares to use fsmonitor has enough files in their repository that a pipe+fork+exec is still faster than however many lstats they would have needed otherwise. Of course, finding out what that number is is still interesting... Thanks, Taylor