performance-tests: tests for renamed/copied files in notmuch new
authorDavid Bremner <david@tethera.net>
Mon, 1 Apr 2019 10:31:51 +0000 (07:31 -0300)
committerDavid Bremner <david@tethera.net>
Fri, 5 Apr 2019 15:14:58 +0000 (12:14 -0300)
Several people have observed that this is surprisingly slow, and we
have a proposal to add tagging into this code path, so we want to make
sure it doesn't imply too much of a performance hit.

performance-test/T00-new.sh

index 687501294e2ce0751311703b7d283fc37db0b2e0..25391136c041c8417912e4dab82b3cd541b6521c 100755 (executable)
@@ -12,4 +12,22 @@ for i in $(seq 2 6); do
     time_run "notmuch new #$i" 'notmuch new'
 done
 
     time_run "notmuch new #$i" 'notmuch new'
 done
 
+manifest=$(mktemp manifestXXXXXX)
+
+find mail -type f ! -path 'mail/.notmuch/*' | sed -n '1~4 p' > $manifest
+# arithmetic context is to eat extra whitespace on e.g. some BSDs
+count=$((`wc -l < $manifest`))
+
+perl -nle 'rename $_, "$_.renamed"' $manifest
+
+time_run "new ($count mv)" 'notmuch new'
+
+perl -nle 'rename "$_.renamed", $_' $manifest
+
+time_run "new ($count mv back)" 'notmuch new'
+
+perl -nle 'link $_, "$_.copy"' $manifest
+
+time_run "new ($count cp)" 'notmuch new'
+
 time_done
 time_done