git-commit-vandalism/t/helper
Ben Peart 14527b3002 fsmonitor: add a performance test
Add a test utility (test-drop-caches) that flushes all changes to disk
then drops file system cache on Windows, Linux, and OSX.

Add a perf test (p7519-fsmonitor.sh) for fsmonitor.

By default, the performance test will utilize the Watchman file system
monitor if it is installed.  If Watchman is not installed, it will use a
dummy integration script that does not report any new or modified files.
The dummy script has very little overhead which provides optimistic results.

The performance test will also use the untracked cache feature if it is
available as fsmonitor uses it to speed up scanning for untracked files.

There are 4 environment variables that can be used to alter the default
behavior of the performance test:

GIT_PERF_7519_UNTRACKED_CACHE: used to configure core.untrackedCache
GIT_PERF_7519_SPLIT_INDEX: used to configure core.splitIndex
GIT_PERF_7519_FSMONITOR: used to configure core.fsmonitor
GIT_PERF_7519_DROP_CACHE: if set, the OS caches are dropped between tests

The big win for using fsmonitor is the elimination of the need to scan the
working directory looking for changed and untracked files. If the file
information is all cached in RAM, the benefits are reduced.

Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-10-01 17:23:05 +09:00
..
.gitignore fsmonitor: add a performance test 2017-10-01 17:23:05 +09:00
test-chmtime.c
test-config.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
test-ctype.c
test-date.c timestamp_t: a new data type for timestamps 2017-04-27 13:07:39 +09:00
test-delta.c
test-drop-caches.c fsmonitor: add a performance test 2017-10-01 17:23:05 +09:00
test-dump-cache-tree.c Convert struct cache_tree to use struct object_id 2017-05-02 10:46:41 +09:00
test-dump-fsmonitor.c fsmonitor: add a test tool to dump the index extension 2017-10-01 17:23:05 +09:00
test-dump-split-index.c
test-dump-untracked-cache.c use QSORT 2016-09-29 15:42:18 -07:00
test-fake-ssh.c
test-genrandom.c
test-hashmap.c t/helper/test-hashmap: use custom data instead of duplicate cmp functions 2017-07-05 13:53:12 -07:00
test-index-version.c
test-lazy-init-name-hash.c name-hash: add test-lazy-init-name-hash 2017-03-24 11:00:03 -07:00
test-line-buffer.c
test-match-trees.c tree: convert parse_tree_indirect to struct object_id 2017-05-08 15:12:58 +09:00
test-mergesort.c
test-mktemp.c
test-online-cpus.c test-online-cpus: helper to return cpu count 2017-04-12 23:17:19 -07:00
test-parse-options.c timestamp_t: a new data type for timestamps 2017-04-27 13:07:39 +09:00
test-path-utils.c test-path-utils: handle const parameter of basename and dirname 2017-08-07 10:50:08 -07:00
test-prio-queue.c
test-read-cache.c test-read-cache: setup git dir 2017-04-16 20:05:11 -07:00
test-ref-store.c ref_store: take a msg parameter when deleting references 2017-05-23 14:29:53 +09:00
test-regex.c
test-revision-walking.c
test-run-command.c
test-scrap-cache-tree.c hold_locked_index(): align error handling with hold_lockfile_for_update() 2016-12-07 11:31:59 -08:00
test-sha1-array.c Rename sha1_array to oid_array 2017-03-31 08:33:56 -07:00
test-sha1.c
test-sha1.sh
test-sigchain.c Merge branch 'jk/common-main-2.8' into jk/common-main 2016-07-06 10:02:57 -07:00
test-strcmp-offset.c Spelling fixes 2017-06-27 10:35:49 -07:00
test-string-list.c perf: add basic sort performance test 2017-01-23 11:02:37 -08:00
test-submodule-config.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
test-subprocess.c
test-svn-fe.c
test-urlmatch-normalization.c
test-wildmatch.c wildmatch: remove unused wildopts parameter 2017-06-23 18:27:07 -07:00
test-write-cache.c perf: add test for writing the index 2017-08-21 15:56:53 -07:00