All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: Elijah Newren <newren@gmail.com>,
	Junio C Hamano <gitster@pobox.com>,
	Git Mailing List <git@vger.kernel.org>,
	Derrick Stolee <stolee@gmail.com>,
	Phillip Wood <phillip.wood123@gmail.com>
Subject: Re: What's cooking in git.git (Jun 2021, #07; Wed, 30)
Date: Mon, 5 Jul 2021 08:02:06 -0400	[thread overview]
Message-ID: <YOL0voZhJolF8Rg4@coredump.intra.peff.net> (raw)
In-Reply-To: <87czrx6v9w.fsf@evledraar.gmail.com>

On Mon, Jul 05, 2021 at 10:03:58AM +0200, Ævar Arnfjörð Bjarmason wrote:

> >> * ab/send-email-optim (2021-05-28) 13 commits
> >>  - perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd()
> >>  - send-email: move trivial config handling to Perl
> >>  - perl: lazily load some common Git.pm setup code
> >>  - send-email: lazily load modules for a big speedup
> >>  - send-email: get rid of indirect object syntax
> >>  - send-email: use function syntax instead of barewords
> >>  - send-email: lazily shell out to "git var"
> >>  - send-email: lazily load config for a big speedup
> >>  - send-email: copy "config_regxp" into git-send-email.perl
> >>  - send-email: refactor sendemail.smtpencryption config parsing
> >>  - send-email: remove non-working support for "sendemail.smtpssl"
> >>  - send-email tests: test for boolean variables without a value
> >>  - send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true
> >>
> >>  "git send-email" optimization.
> >>
> >>  Will merge to 'next'.
> >
> > Wahoo!
> 
> Do you find the faster t9001*.sh helps your overall test-run time?

It does for me. Running "make test" on 'next' (with -O2, and prove
--state=slow,save so it realizes t9001 is slow) takes 66 wallclock
seconds total. The top culprits are:

  $ 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
  65.4168658256531 t9001-send-email.sh
  40.6761560440063 t0027-auto-crlf.sh
  26.0225791931152 t7610-mergetool.sh
  24.0760719776154 t7112-reset-submodule.sh
  23.5710120201111 t5572-pull-submodule.sh
  23.2557609081268 t9500-gitweb-standalone-no-errors.sh
  20.9747018814087 t1701-racy-split-index.sh
  20.7937531471252 t7400-submodule-basic.sh
  20.4510779380798 t5510-fetch.sh
  20.0246639251709 t3305-notes-fanout.sh

Merging in ab/send-email-optim takes 60s, and yields:

  39.4541878700256 t0027-auto-crlf.sh
  27.2213349342346 t7610-mergetool.sh
  26.2227098941803 t9001-send-email.sh
  25.0272631645203 t5572-pull-submodule.sh
  24.3502569198608 t7112-reset-submodule.sh
  24.0568630695343 t9500-gitweb-standalone-no-errors.sh
  22.3555839061737 t7400-submodule-basic.sh
  21.2626190185547 t3305-notes-fanout.sh
  21.1138088703156 t5510-fetch.sh
  21.0040950775146 t1701-racy-split-index.sh

So we shaved 39s of CPU (albeit clocked-down-due-to-parallelism
seconds), and gained 6 wallclock seconds. Subsequent runs seem to shave
off a few more seconds even (presumably because the test-slowness
ordering is updated).

-Peff

  reply	other threads:[~2021-07-05 12:02 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-30 22:55 What's cooking in git.git (Jun 2021, #07; Wed, 30) Junio C Hamano
2021-07-01  0:02 ` Felipe Contreras
     [not found] ` <CAFQ2z_PYJMzOBcN+KoQSfdD-eYtZVzrArL0Dh-YW-q3R8hgm2w@mail.gmail.com>
2021-07-01  7:19   ` Han-Wen Nienhuys
2021-07-01 13:06     ` Ævar Arnfjörð Bjarmason
2021-07-01 13:42 ` Ævar Arnfjörð Bjarmason
2021-07-01 14:20   ` Jeff Hostetler
2021-07-01 14:00 ` Ævar Arnfjörð Bjarmason
2021-07-01 15:21   ` Junio C Hamano
2021-07-02 12:18     ` Ævar Arnfjörð Bjarmason
2021-07-02 16:05       ` Junio C Hamano
2021-07-01 16:51   ` Jeff King
2021-07-01 16:20 ` Jeff King
2021-07-03  5:04 ` Elijah Newren
2021-07-05  8:03   ` Ævar Arnfjörð Bjarmason
2021-07-05 12:02     ` Jeff King [this message]
2021-07-06 13:46   ` Phillip Wood
2021-07-06 19:29     ` Ævar Arnfjörð Bjarmason
2021-07-06 20:36       ` Junio C Hamano

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YOL0voZhJolF8Rg4@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=newren@gmail.com \
    --cc=phillip.wood123@gmail.com \
    --cc=stolee@gmail.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.