systemd/tools
Zbigniew Jędrzejewski-Szmek a2031de849 tools/make-directive-index: parallelize
I occasionally do 'build/man/man systemd.directives' when working on man pages,
and it's annoying slow. By paralellizing the parsing of xml, we can make it a
bit faster.

This is still rather innefficient. Only the parsing part is serialized, xml is
still produced serially at the end, which is hard to avoid.

$ ninja -C build man/systemd.directives.xml
before:
8.20s user 0.21s system 99% cpu 8.460 total
8.33s user 0.18s system 98% cpu 8.619 total
8.72s user 0.19s system 98% cpu 9.019 total

after:
13.99s user 0.73s system 345% cpu 4.262 total
14.15s user 0.35s system 348% cpu 4.161 total
14.33s user 0.35s system 339% cpu 4.321 total

I.e. it uses almost twice as much cpu, but cuts the wallclock time down (on a
2-core/4-thread cpu) to about half too, which is an overall win if you're just
trying to render the man page.

The change from list and .append() to set and .add() is something that could
have been done before too, but it's noticable now. It cuts down on the
serialization/deserialization time (about .2s).
2021-05-13 11:53:01 +02:00
..
chromiumos hwdb: update for v248 2021-03-08 14:27:48 +01:00
add-git-hook.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
build-bpf-skel.py bpf: add build script for bpf programs 2021-04-26 16:07:41 -07:00
catalog-report.py tree-wide: drop header for emacs from python scripts 2018-12-10 03:17:33 +09:00
check-api-docs.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
check-compilation.sh tree-wide: add spdx header on all scripts and helpers 2021-01-28 09:55:35 +01:00
check-directives.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
check-help.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
check-includes.pl Drop "Copyright abandonded" header 2018-07-24 11:14:44 +02:00
choose-default-locale.sh tree-wide: add spdx header on all scripts and helpers 2021-01-28 09:55:35 +01:00
coverity.sh tree-wide: add spdx header on all scripts and helpers 2021-01-28 09:55:35 +01:00
find-build-dir.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
find-double-newline.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
find-tabs.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
gdb-sd_dump_hashmaps.py license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
generate-gperfs.py license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
get-coverity.sh tree-wide: add spdx header on all scripts and helpers 2021-01-28 09:55:35 +01:00
git-contrib.sh git-contrib: use non-breaking spaces in names 2021-03-30 13:17:59 +02:00
make-autosuspend-rules.py license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
make-directive-index.py tools/make-directive-index: parallelize 2021-05-13 11:53:01 +02:00
make-man-index.py license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00
meson-apply-m4.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
meson-build.sh tree-wide: add spdx header on all scripts and helpers 2021-01-28 09:55:35 +01:00
meson-make-symlink.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
meson-vcs-tag.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
oss-fuzz.sh oss-fuzz: show meson logs 2021-02-01 22:51:43 +09:00
update-dbus-docs.py update-dbus-docs: use color in summary 2021-02-06 11:41:42 +01:00
update-hwdb-autosuspend.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
update-hwdb.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
update-man-rules.py meson: rename target to update-man-rules 2021-01-27 09:10:25 +01:00
update-syscall-tables.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
xml_helper.py license: LGPL-2.1+ -> LGPL-2.1-or-later 2020-11-09 13:23:58 +09:00