From: Jeff King <peff@peff.net>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, "Junio C Hamano" <gitster@pobox.com>,
"Gregory Anders" <greg@gpanders.com>,
"Đoàn Trần Công Danh" <congdanhqx@gmail.com>
Subject: Re: [PATCH 0/9] send-email: various optimizations to speed up by >2x
Date: Wed, 12 May 2021 19:34:53 -0400 [thread overview]
Message-ID: <YJxmHbHAn4x93xsr@coredump.intra.peff.net> (raw)
In-Reply-To: <cover-0.9-0000000000-20210512T132955Z-avarab@gmail.com>
On Wed, May 12, 2021 at 03:48:16PM +0200, Ævar Arnfjörð Bjarmason wrote:
> This combines by not-picked-up[1] recent patches to remove the support
> for the "sendemail.smtpssl" variable with the later patches showing
> where that effort was really going.
>
> As noted in the subject this speeds up git-send-email invocations by
> ~2x or more, and brings the very slow t9001 test from running in ~26s
> on my box to ~12s. It's no longer consistently the slowest test I run.
Nice. I have observed that with a decent number of cores, the running
time of the entire test suite correlates strongly with the running time
of t9001. :)
Here are timings for individual tests run with "prove --state=slow,save".
(This is on an 8-core machine using -j32, skipping cvs/svn/p4 tests,
and using a tmpfs via --root). The timings were computed with:
perl -MYAML -e '
$_ = do { local $/; <> };
# prove puts this non-YAML cruft at the end
s/\.\.\.$//s;
my $t = YAML::Load($_)->{tests};
print "$_->[1] $_->[0]\n" for
sort { $b->[1] <=> $a->[1] }
map { [$_, $t->{$_}->{elapsed}] }
keys(%$t);
' t/.prove | head
Before your patches, the whole sweet takes ~60-63s, and the top timings
(from a 63s run) are:
63.2607979774475 t9001-send-email.sh
51.742644071579 t0027-auto-crlf.sh
37.7909920215607 t3070-wildmatch.sh
27.09605717659 t7610-mergetool.sh
24.7028169631958 t7112-reset-submodule.sh
24.5535898208618 t5572-pull-submodule.sh
23.8404550552368 t9500-gitweb-standalone-no-errors.sh
22.3544380664825 t7400-submodule-basic.sh
21.7017750740051 t5510-fetch.sh
21.4575610160828 t3305-notes-fanout.sh
Now after, which takes ~54-59s (this is from a 54s run):
46.796669960022 t0027-auto-crlf.sh
32.5747599601746 t3070-wildmatch.sh
21.5069420337677 t7610-mergetool.sh
20.8392388820648 t1701-racy-split-index.sh
19.7403028011322 t5572-pull-submodule.sh
19.7386808395386 t9001-send-email.sh
19.4622302055359 t7112-reset-submodule.sh
18.9555768966675 t9500-gitweb-standalone-no-errors.sh
18.0672709941864 t7400-submodule-basic.sh
17.641391992569 t5510-fetch.sh
I have some messy patches to split t9001 into two segments. They were
waiting to get polished, but perhaps I can just discard them now. :)
Some side notes for those interested in timing the test suite:
- If I run t9001 standalone, it goes much faster, of course; the CPU
throttles down when we're running all the tests in parallel.
- Those are with "-x --verbose-log", which is nice for catching flaky
results. Dropping those seems to shave a few seconds off.
- A big chunk of time for t0027 and t3070 is spent running the sed-based
chain-linting for their huge tables of auto-generated tests (1400+
and 1800+ respectively). Dropping the sed linting for just those
tests knocks off about 30 CPU-seconds.
-Peff
next prev parent reply other threads:[~2021-05-12 23:57 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-12 13:48 [PATCH 0/9] send-email: various optimizations to speed up by >2x Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 1/9] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-12 15:46 ` Đoàn Trần Công Danh
2021-05-12 13:48 ` [PATCH 2/9] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 3/9] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 4/9] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 5/9] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-12 23:11 ` Jeff King
2021-05-12 13:48 ` [PATCH 6/9] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 7/9] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 8/9] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-12 18:05 ` Eric Wong
2021-05-12 13:48 ` [PATCH 9/9] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-12 19:52 ` Eric Sunshine
2021-05-12 23:08 ` Jeff King
2021-05-13 7:04 ` Felipe Contreras
2021-05-13 7:07 ` Ævar Arnfjörð Bjarmason
2021-05-13 7:26 ` Jeff King
2021-05-13 8:15 ` Felipe Contreras
2021-05-13 11:45 ` Ævar Arnfjörð Bjarmason
2021-05-12 18:04 ` [PATCH 0/9] send-email: various optimizations to speed up by >2x Eric Wong
2021-05-12 23:34 ` Jeff King [this message]
2021-05-12 23:36 ` Jeff King
2021-05-13 7:37 ` Ævar Arnfjörð Bjarmason
2021-05-13 7:49 ` Jeff King
2021-05-20 8:18 ` [PATCH v2 00/10] " Ævar Arnfjörð Bjarmason
2021-05-20 8:18 ` [PATCH v2 01/10] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-20 8:18 ` [PATCH v2 02/10] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 03/10] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 04/10] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 05/10] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 06/10] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 07/10] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 08/10] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 09/10] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 10/10] perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd() Ævar Arnfjörð Bjarmason
2021-05-20 8:27 ` [PATCH v2 00/10] send-email: various optimizations to speed up by >2x Jeff King
2021-05-20 23:53 ` Junio C Hamano
2021-05-21 6:23 ` Ævar Arnfjörð Bjarmason
2021-05-21 7:07 ` Junio C Hamano
2021-05-21 9:13 ` Jeff King
2021-05-21 9:24 ` Ævar Arnfjörð Bjarmason
2021-05-21 9:37 ` Jeff King
2021-05-28 15:49 ` Felipe Contreras
2021-05-29 8:19 ` Ævar Arnfjörð Bjarmason
2021-05-29 14:53 ` Felipe Contreras
2021-05-30 11:33 ` Ævar Arnfjörð Bjarmason
2021-05-30 16:07 ` Felipe Contreras
2021-05-28 15:12 ` Felipe Contreras
2021-05-23 8:56 ` [PATCH v3 00/13] " Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 01/13] send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 02/13] send-email tests: test for boolean variables without a value Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 03/13] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 04/13] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 05/13] send-email: copy "config_regxp" into git-send-email.perl Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 06/13] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 07/13] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 08/13] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 09/13] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 10/13] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 11/13] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 12/13] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 13/13] perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd() Ævar Arnfjörð Bjarmason
2021-05-24 1:15 ` [PATCH v3 00/13] send-email: various optimizations to speed up by >2x Junio C Hamano
2021-05-24 7:52 ` [PATCH v4 " Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 01/13] send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 02/13] send-email tests: test for boolean variables without a value Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 03/13] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 04/13] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 05/13] send-email: copy "config_regxp" into git-send-email.perl Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 06/13] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 07/13] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 08/13] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 09/13] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 10/13] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-27 1:11 ` Junio C Hamano
2021-05-27 11:36 ` Ævar Arnfjörð Bjarmason
2021-05-24 7:53 ` [PATCH v4 11/13] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-24 7:53 ` [PATCH v4 12/13] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-27 15:57 ` Jeff King
2021-05-24 7:53 ` [PATCH v4 13/13] perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd() Ævar Arnfjörð Bjarmason
2021-05-27 16:00 ` [PATCH v4 00/13] send-email: various optimizations to speed up by >2x Jeff King
2021-05-28 9:23 ` [PATCH v5 " Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 01/13] send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 02/13] send-email tests: test for boolean variables without a value Ævar Arnfjörð Bjarmason
2021-07-10 23:23 ` Jeff King
2021-05-28 9:23 ` [PATCH v5 03/13] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 04/13] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 05/13] send-email: copy "config_regxp" into git-send-email.perl Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 06/13] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 07/13] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 08/13] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-28 16:10 ` Felipe Contreras
2021-05-29 8:17 ` Ævar Arnfjörð Bjarmason
2021-05-29 14:25 ` Felipe Contreras
2021-05-28 9:23 ` [PATCH v5 09/13] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 10/13] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-28 15:55 ` Felipe Contreras
2021-05-29 8:12 ` Ævar Arnfjörð Bjarmason
2021-05-29 14:24 ` Felipe Contreras
2021-05-28 9:23 ` [PATCH v5 11/13] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 12/13] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 13/13] perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd() Ævar Arnfjörð Bjarmason
2021-05-28 16:13 ` [PATCH v5 00/13] send-email: various optimizations to speed up by >2x Felipe Contreras
2021-05-31 5:48 ` Jeff King
2021-05-31 9:53 ` Ævar Arnfjörð Bjarmason
2021-05-31 14:38 ` Jeff King
2021-05-27 7:21 ` [PATCH 0/9] " Elijah Newren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YJxmHbHAn4x93xsr@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=avarab@gmail.com \
--cc=congdanhqx@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=greg@gpanders.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).