Bug 575893 - [performance] improve file search: unordered result

AbstractTextSearchResult did spend the most time in waiting for
synchronization.
By using concurrent datastructures the lock congestion can be avoided.
Also the binary search can be avoided until the result is needed.

Requires to sort the result when optaining it. If the sort order is not
needed it is avoided.

The order of reported matches found (with equal offset and length) is
not preserved (Does not make sense during parallel search anyway).

Previously the order of a single threaded search had been preserved
(which was a overshoot - Bug 58417 only requested to have the offset
ordered)

Change-Id: I6e3134fada904faf32352d5c71035e7881cf49db
Signed-off-by: Joerg Kubitz <jkubitz-eclipse@gmx.de>
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.text/+/185198
Tested-by: Platform Bot <platform-bot@eclipse.org>
5 files changed