On Tue, Nov 3, 2015 at 10:21 AM, Duy Nguyen <pclouds@xxxxxxxxx> wrote: > On Mon, Nov 2, 2015 at 8:23 PM, Duy Nguyen <pclouds@xxxxxxxxx> wrote: >> On Mon, Nov 2, 2015 at 3:54 PM, Paolo Ciarrocchi >> <paolo.ciarrocchi@xxxxxxxxx> wrote: >>> On Sun, Nov 1, 2015 at 2:55 PM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: >>> >>> Hi Duy, >>> >>>> This series builds on top of the index-helper series I just sent and >>>> uses watchman to keep track of file changes in order to avoid lstat() >>>> at refresh time. The series can also be found at [1] >>>> >>>> When I started this work, watchman did not support Windows yet. It >>>> does now, even if still experimental [2]. So Windows people, please >>>> try it out if you have time. >>>> >>>> To put all pieces so far together, we have split-index to reduce index >>>> write time, untracked cache to reduce I/O as well as computation for >>>> .gitignore, index-helper for index read time and this series for >>>> lstat() at refresh time. The remaining piece is killing lstat() from >>>> untracked cache, but right now it's just some idea and incomplete >>>> code. >>> >>> Did you manage to measure the speedup introduced by this series? >> >> It was from last year. I may have measured it but because I didn't >> save it in the commit message, it was lost anyway. Installing watchman >> and measuring with webkit.git soon.. > > Test repo: webkit.git with 104665 tracked files, 5615 untracked, > 3517 dirs. Best numbers out of a few tries. This is best case > scenario. Normal usage could have worse numbers. Thank you for the tests! I tried to replicate your results on webkit.git with 184672 tracked files, 5631 untracked, 9330 dirs. Also best numbers out of a few tries. > There is something strange about the "-uno" measurements. I don't > think watchman+untracked cache can beat -uno.. Maybe I did something > wrong. > > 0m0.383s index v2 > 0m0.351s index v4 > 0m0.352s v2 split-index > 0m0.309s v2 split index-helper > 0m0.159s v2 split helper untracked-cache > 0m0.123s v2 split helper "status -uno" > 0m0.098s v2 split helper untracked watchman > 0m0.071s v2 split helper watchman "status -uno" I got the following results from "time git status ...": 0m0.774s 0m0.799s split 0m0.766s split helper 0m0.335s split helper untracked 0m0.232s split helper untracked -uno 0m0.284s split helper untracked watchman 0m0.188s split helper untracked watchman -uno Using David's series I get worse results than all of the above but I guess it's because his series is based on an ancient git version (v2.0.0-rc0). > Note, the watchman series needs > s/free_watchman_shm/release_watchman_shm/ (I didn't do a good job > of testing after rebase). And there's a small bug in index-helper > --detach code writing incorrect PID.. I did the s/free_watchman_shm/release_watchman_shm/ change, but I didn't notice the index-helper bug. Thanks, Christian. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html