Skip to main content
AgeCommit message (Collapse)AuthorFilesLines
2015-01-23Bug 441016 - Speed up text search by parallelizingI20150128-2000I20150128-0900I20150127-2000I20150127-0900I20150126-2000I20150126-0930I20150126-0800I20150125-2000Terry Parker1-0/+4
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 <>

    Back to the top