Speed up "gn path".
commit22ca12c760e23efdc988409149fd2d4e43e6fed9
authorbrettw <brettw@chromium.org>
Wed, 20 May 2015 18:12:47 +0000 (20 11:12 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 20 May 2015 18:12:53 +0000 (20 18:12 +0000)
tree11add22f527e92d694b10a42d26dd29efa2f10aa
parent2cbf34d4a44319dcbfb22f42ad5b300ff20802ac
Speed up "gn path".

"gn path" finds all unique paths. This can be slow because, for example,
//chrome/browser has 478 million unique paths through it's dependency tree
and running path from //chrome/browser to //chrome/renderer took about 6.5
seconds on my big desktop to analyze all of these (to find no results).

This patch keeps track of which targets have been eliminated from consideration
and avoids visiting them again. This improves the above qwuery to 0.78 seconds
while still being able to compute the total number of results.

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

Cr-Commit-Position: refs/heads/master@{#330772}
tools/gn/command_path.cc