aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2019-11-22 16:23:22 +0100
committerTom de Vries <tdevries@suse.de>2019-11-22 16:23:22 +0100
commitf618007364b84739f6f8663c1c634fb47bbc6732 (patch)
tree4dfbe469ad42899ca74f716c9195394457a70345
parent8b301fbb6114faba4e95e24e3a1c3108f64885c6 (diff)
downloadfsf-binutils-gdb-f618007364b84739f6f8663c1c634fb47bbc6732.zip
fsf-binutils-gdb-f618007364b84739f6f8663c1c634fb47bbc6732.tar.gz
fsf-binutils-gdb-f618007364b84739f6f8663c1c634fb47bbc6732.tar.bz2
[gdb/contrib] Combine sed invocations in words.sh script
Currently running words.sh on all the c source and header files in the repo takes ~16s in user time: ... $ time ./gdb/contrib/words.sh \ $(find -type f -name "*.c" -o -name "*.h") \ >/dev/null real 0m7,787s user 0m16,349s sys 0m0,367s ... Rewrite the sed invocations using the -e option from this: ... | sed <sedprog1> | sed <sedprog2> ... into this: ... | sed \ -e <sedprog1> -e <sedprog2> ... and reduce user time to ~11s: ... $ time ./gdb/contrib/words.sh \ $(find -type f -name "*.c" -o -name "*.h") \ >/dev/null real 0m7,243s user 0m11,220s sys 0m0,205s ... gdb/ChangeLog: 2019-11-22 Tom de Vries <tdevries@suse.de> * contrib/words.sh: Combine sed invocations. Change-Id: Ib08453f3712f32ed02d9f503ee960711ebb9421b
-rw-r--r--gdb/ChangeLog4
-rwxr-xr-xgdb/contrib/words.sh11
2 files changed, 10 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 81c6690..25c63c7 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2019-11-22 Tom de Vries <tdevries@suse.de>
+
+ * contrib/words.sh: Combine sed invocations.
+
2019-11-21 Christian Biesinger <cbiesinger@google.com>
* Makefile.in: Update.
diff --git a/gdb/contrib/words.sh b/gdb/contrib/words.sh
index ae38539..8c4fdd0 100755
--- a/gdb/contrib/words.sh
+++ b/gdb/contrib/words.sh
@@ -114,12 +114,13 @@ export LC_ALL=C
awk \
-f "$awkfile" \
-- "$@" \
- | sed 's/[%^$~#{}`&=@,. \t\/_()|<>\+\*-]/\n/g' \
- | sed 's/\[/\n/g' \
- | sed 's/\]/\n/g' \
- | sed 's/[0-9][0-9]*/\n/g' \
+ | sed \
+ -e 's/[%^$~#{}`&=@,. \t\/_()|<>\+\*-]/\n/g' \
+ -e 's/\[/\n/g' \
+ -e 's/\]/\n/g' \
+ -e 's/[0-9][0-9]*/\n/g' \
+ -e 's/[ \t]*//g' \
| tr '[:upper:]' '[:lower:]' \
- | sed 's/[ \t]*//g' \
| sort \
| uniq -c \
| awk "{ if (($minfreq == 0 || $minfreq <= \$1) \