diff options
author | Dan Willemsen <dwillemsen@google.com> | 2016-09-30 20:17:14 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2016-10-01 12:46:04 -0700 |
commit | 064be227bfc5948a74e034fd613d556a49e8b49b (patch) | |
tree | a2fe0615ee60651cc5014a1d689db797965b88f1 /testcase | |
parent | 9862c2a1dc844d431cf3f9cca41603362cc077c9 (diff) | |
download | android_build_kati-064be227bfc5948a74e034fd613d556a49e8b49b.tar.gz android_build_kati-064be227bfc5948a74e034fd613d556a49e8b49b.tar.bz2 android_build_kati-064be227bfc5948a74e034fd613d556a49e8b49b.zip |
Optimize RunCommand by removing /bin/sh wrapper when possible
For every $(shell echo "test: $PATH") command, when SHELL is /bin/bash,
we essentially run: (each arg wrapped in [])
[/bin/sh] [-c] [/bin/bash -c "echo \"test: \$PATH\""]
This is redundant, since we can just use SHELL, and then we don't need
to do an extra level of shell escaping either. This change makes us run
this instead:
[/bin/bash] [-c] [echo "test: $PATH"]
If SHELL is more complicated than an absolute path to a binary, then
we'll fall back to /bin/sh.
Using the benchmark introduced in the last change, this reduces a
minimal RunCommand execution with a simple SHELL from 3.7ms to 1.3ms.
For a more complex benchmark (though less normalized), for an AOSP
Android build, this change shrinks the average time spent in $(shell)
functions from 4.5ms to 3ms.
Change-Id: I622116e33565e58bb123ee9e9bdd302616a6609c
Diffstat (limited to 'testcase')
0 files changed, 0 insertions, 0 deletions