diff options
author | Dan Willemsen <dwillemsen@google.com> | 2018-10-30 21:24:23 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2018-10-30 21:24:23 -0700 |
commit | 634720648d78f79c9c2705a7d4cfeed7ef3e173c (patch) | |
tree | 0745cf0f60f8d2398fbbe5214187e392c5dbafd0 | |
parent | 0d9ffeaac880401ee18e4f33bddc3a76b0faf372 (diff) | |
download | kati-634720648d78f79c9c2705a7d4cfeed7ef3e173c.tar.gz |
Improve regen performance by setting cpu affinity
For aosp/master aosp_arm64-eng, this brings the times for regen down by
nearly a second:
glob time (regen) 0.52 -> 0.52
shell time (regen) 2.25 -> 1.39
stat time (regen) 0.54 -> 0.44
Some of our internal targets show larger decreases:
glob time (regen) 0.81 -> 0.83
shell time (regen) 4.84 -> 2.99
stat time (regen) 1.11 -> 0.95
Change-Id: I2c52de0643a3a424e9866017cc53dde4a24a40ec
-rw-r--r-- | regen.cc | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -23,6 +23,7 @@ #include <mutex> #include <vector> +#include "affinity.h" #include "fileutil.h" #include "find.h" #include "func.h" @@ -429,6 +430,7 @@ class StampChecker { tp->Submit([this]() { string err; // TODO: Make glob cache thread safe and create a task for each glob. + SetAffinityForSingleThread(); for (GlobResult* gr : globs_) { if (CheckGlobResult(gr, &err)) { unique_lock<mutex> lock(mu_); @@ -442,6 +444,7 @@ class StampChecker { }); tp->Submit([this]() { + SetAffinityForSingleThread(); for (ShellResult* sr : commands_) { string err; if (CheckShellResult(sr, &err)) { |