Make gdb-add-index index concurrently.

Most linux machines can likely handle a few concurrent indexing jobs
for the shared objects in one binary. This modification uses SIGUSR1 and
subshells to simulate a semaphore with task queue that significantly
increases the speed of execution over a newly built set of binaries.

By default, this script executes 4 parallel indexing tasks, though the
concurrency be controlled by setting the INDEX_TASKS shell variable.

Here are bencharks from my z620, using a component build browser_test
binary as the target:

6 threads browser_threads:
   real    0m36.307s
   user    0m51.680s
   sys     0m13.150s

4 threads browser_threads:
   real   0m39.243s
   user   0m53.010s
   sys    0m12.230s

1 thread browser_threads:
   real    1m12.099s
   user    0m53.300s
   sys     0m13.580s

This was on an SSD. Benefit hit diminishing return after 4 threads and
may actually taper off sooner.

BUG=none
[email protected]

Review URL: https://codereview.chromium.org/23130007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217815 0039d316-1c4b-4281-b951-d872f2087c98
1 file changed