aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2018-10-30 21:24:23 -0700
committerDan Willemsen <dwillemsen@google.com>2018-10-30 21:24:23 -0700
commit634720648d78f79c9c2705a7d4cfeed7ef3e173c (patch)
tree0745cf0f60f8d2398fbbe5214187e392c5dbafd0
parent0d9ffeaac880401ee18e4f33bddc3a76b0faf372 (diff)
downloadkati-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.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/regen.cc b/regen.cc
index b6c2872..4374f81 100644
--- a/regen.cc
+++ b/regen.cc
@@ -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)) {