Skip to main content
diff options
authorTerry Parker2014-07-29 23:58:34 +0000
committerTerry Parker2015-01-23 18:05:39 +0000
commit8041d58d7588a3871f4593462b7fa1686de64058 (patch)
tree39a89ed6824d0218ea315ef2e5ce2927e19ed340 /
parent058694a2fadc002a78b472c249d6a923c09e332f (diff)
Execute text search processing in parallel, yielding a 3x-4x speedup. Previously all files in a text search were processed serially. This change moves the work into Jobs and uses a JobGroup to parallelize the processing. The following additional changes were needed: * Some “global” state (e.g., FileCharSequenceProvider and ReusableMatchAccess) that were previously accessed as class member variables were changed to per-file or per-job instances. * Access to FileSearchQuery.TextSearchResultCollector needed to be synchronized. Its intermediate cache, which was previously an ArrayList and assumed the last entry held the previous match from the current file, was changed to a Map of IFile->ArrayList so that each file’s results are segregated. Converted spaces to tabs in the search() method to improve the Gerrit code review experience. Added minimal performance logging. Change-Id: I3e36da89cd891acabb902e28415d8ddecea4df60 Signed-off-by: Terry Parker <>
Diffstat (limited to '')
1 files changed, 4 insertions, 0 deletions
diff --git a/ b/
new file mode 100644
index 00000000000..f80dc7bac7d
--- /dev/null
+++ b/
@@ -0,0 +1,4 @@
+# Debugging options for the plug-in
+# Reports performance of text searches

Back to the top