summaryrefslogtreecommitdiff
path: root/catalog
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-05-12 11:24:25 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-05-13 11:53:01 +0200
commita2031de849da52aa85b7e4326c0112ed7e5b5672 (patch)
treebfd06e6e41f2f57fd9232b17d3019f90cb3aa664 /catalog
parent31b5be17e02ac859f26df4477f9917727fbb0249 (diff)
downloadsystemd-a2031de849da52aa85b7e4326c0112ed7e5b5672.tar.gz
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).
Diffstat (limited to 'catalog')
0 files changed, 0 insertions, 0 deletions