unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Tom Tromey <tromey@redhat.com>
To: esr@thyrsus.com
Cc: emacs-devel@gnu.org
Subject: Re: Hideously slow VC status queries fixed
Date: Tue, 01 Jan 2008 16:21:50 -0700	[thread overview]
Message-ID: <m3zlvpb08h.fsf@fleche.redhat.com> (raw)
In-Reply-To: <20071231203319.GA26639@thyrsus.com> (Eric S. Raymond's message of "Mon\, 31 Dec 2007 15\:33\:19 -0500")

>>>>> "Eric" == Eric S Raymond <esr@thyrsus.com> writes:

Eric> Tom Tromey <tromey@redhat.com>:
>> Appended is a call-graph profile, thanks to Christian Ohler.
>> This is pretty interesting.

Eric> What are you seeing that I'm not?  Nothing jumps out at me as 
Eric> peculiar.

The vc-registered -> vc-call-backend edge seems particularly bad.
But perhaps I'm misreading this, or we knew it, or this profiler is
giving erroneous results.

BTW, today's VC changes roughly halved the number of calls to
vc-call-backend, but (according to oelp) the elapsed time hasn't
changed much.  New profile appended.

Tom

Function Name                        Call Count  Elapsed Time  Average Time
===================================  ==========  ============  ============
  vc-registered                       173         1366.0392379  7.8961805664
vc-call-backend                     186         4515.3948180  24.276316225
  <self or not profiled>              186         3140.0213510  16.881835220
  vc-stay-local-p                     1           1359.762977   1359.762977
  vc-file-setprop                     238528      11.230348000  4.708...e-05
  vc-default-registered               18          1.501319      0.0834066111
  vc-sccs-registered                  17          1.4998170000  0.0882245294
  vc-git-registered                   17          0.3869679999  0.0227628235
  vc-mcvs-registered                  17          0.175918      0.0103481176
  vc-bzr-registered                   17          0.166246      0.0097791764
  vc-hg-registered                    17          0.1651839999  0.0097167058
  vc-arch-registered                  17          0.1644719999  0.0096748235
  vc-mtn-registered                   17          0.163277      0.0096045294
  vc-find-backend-function            6           0.068498      0.0114163333
  vc-state                            5           0.0450599999  0.009012
  vc-working-revision                 5           0.043155      0.008631
  vc-file-getprop                     15          0.0001360000  9.066...e-06
  vc-kill-buffer-hook                 16          9.199...e-05  5.749...e-06

  vc-stay-local-p                     1           1359.745306   1359.745306
  vc-state                            17          9.137986      0.5375285882
vc-backend                          23          1368.9283529  59.518624043
  vc-registered                       18          1368.5600880  76.031116000
  <self or not profiled>              23          0.3674779999  0.0159773043
  vc-file-getprop                     24          0.000787      3.279...e-05

  vc-backend                          18          1368.5600880  76.031116000
vc-registered                       18          1368.5600880  76.031116000
  vc-call-backend                     173         1366.0392379  7.8961805664
  <self or not profiled>              18          2.5205340000  0.1400296666
  vc-file-setprop                     18          0.000171      9.5e-06
  vc-file-getprop                     18          0.000145      8.055...e-06

  vc-call-backend                     1           1359.762977   1359.762977
vc-stay-local-p                     1           1359.762977   1359.762977
  vc-backend                          1           1359.745306   1359.745306
  <self or not profiled>              1           0.0176510000  0.0176510000
  vc-make-backend-sym                 1           2e-05         2e-05

  vc-call-backend                     5           0.0450599999  0.009012
vc-state                            51291       680.21053799  0.0132617913
  <self or not profiled>              51291       658.54704799  0.0128394269
  vc-file-getprop                     51291       12.525504000  0.0002442047
  vc-backend                          17          9.137986      0.5375285882

  vc-state                            51291       12.525504000  0.0002442047
  vc-backend                          24          0.000787      3.279...e-05
  vc-working-revision                 5           0.000702      0.0001404
  vc-registered                       18          0.000145      8.055...e-06
  vc-call-backend                     15          0.0001360000  9.066...e-06
vc-file-getprop                     51353       12.527274000  0.0002439443
  <self or not profiled>              51353       12.527274000  0.0002439443

  vc-call-backend                     238528      11.230348000  4.708...e-05
  vc-registered                       18          0.000171      9.5e-06
vc-file-setprop                     238546      11.230519000  4.707...e-05
  <self or not profiled>              238546      11.230519000  4.707...e-05

  vc-call-backend                     18          1.501319      0.0834066111
  vc-sccs-registered                  17          1.3520339999  0.0795314117
vc-default-registered               35          2.853353      0.0815243714
  vc-check-master-templates           35          2.0015959999  0.0571884571
  <self or not profiled>              35          0.8511960000  0.0243198857
  vc-make-backend-sym                 35          0.0005610000  1.602...e-05

  vc-default-registered               35          2.0015959999  0.0571884571
vc-check-master-templates           35          2.0015959999  0.0571884571
  <self or not profiled>              35          1.8503919999  0.0528683428
  vc-possible-master                  105         0.151204      0.0014400380

  vc-call-backend                     17          1.4998170000  0.0882245294
vc-sccs-registered                  17          1.4998170000  0.0882245294
  vc-default-registered               17          1.3520339999  0.0795314117
  <self or not profiled>              17          0.1477830000  0.0086931176

  vc-call-backend                     17          0.3869679999  0.0227628235
vc-git-registered                   17          0.3869679999  0.0227628235
  <self or not profiled>              17          0.3711519999  0.0218324705
  vc-find-root                        17          0.015816      0.0009303529

  vc-call-backend                     17          0.175918      0.0103481176
vc-mcvs-registered                  17          0.175918      0.0103481176
  <self or not profiled>              17          0.1591679999  0.0093628235
  vc-find-root                        17          0.0167500000  0.0009852941

  vc-call-backend                     17          0.166246      0.0097791764
vc-bzr-registered                   17          0.166246      0.0097791764
  <self or not profiled>              17          0.149044      0.0087672941
  vc-find-root                        17          0.017202      0.0010118823

  vc-call-backend                     17          0.1651839999  0.0097167058
vc-hg-registered                    17          0.1651839999  0.0097167058
  <self or not profiled>              17          0.1492689999  0.0087805294
  vc-find-root                        17          0.015915      0.0009361764

  vc-call-backend                     17          0.1644719999  0.0096748235
vc-arch-registered                  17          0.1644719999  0.0096748235
  <self or not profiled>              17          0.1479379999  0.0087022352
  vc-find-root                        17          0.016534      0.0009725882

  vc-call-backend                     17          0.163277      0.0096045294
vc-mtn-registered                   17          0.163277      0.0096045294
  <self or not profiled>              17          0.1464970000  0.0086174705
  vc-find-root                        17          0.01678       0.0009870588

  vc-check-master-templates           105         0.151204      0.0014400380
vc-possible-master                  105         0.151204      0.0014400380
  <self or not profiled>              105         0.150816      0.0014363428
  vc-sccs-search-project-dir          17          0.000388      2.282...e-05

  vc-bzr-registered                   17          0.017202      0.0010118823
  vc-mtn-registered                   17          0.01678       0.0009870588
  vc-mcvs-registered                  17          0.0167500000  0.0009852941
  vc-arch-registered                  17          0.016534      0.0009725882
  vc-hg-registered                    17          0.015915      0.0009361764
  vc-git-registered                   17          0.015816      0.0009303529
vc-find-root                        102         0.0989970000  0.0009705588
  <self or not profiled>              102         0.0989970000  0.0009705588

  vc-call-backend                     6           0.068498      0.0114163333
vc-find-backend-function            7           0.076992      0.0109988571
  <self or not profiled>              7           0.076893      0.0109847142
  vc-make-backend-sym                 7           9.900...e-05  1.414...e-05

  vc-call-backend                     5           0.043155      0.008631
vc-working-revision                 5           0.043155      0.008631
  <self or not profiled>              5           0.042453      0.0084906
  vc-file-getprop                     5           0.000702      0.0001404

  vc-default-registered               35          0.0005610000  1.602...e-05
  vc-find-backend-function            7           9.900...e-05  1.414...e-05
  vc-stay-local-p                     1           2e-05         2e-05
vc-make-backend-sym                 43          0.0006799999  1.581...e-05
  <self or not profiled>              43          0.0006799999  1.581...e-05

  vc-possible-master                  17          0.000388      2.282...e-05
vc-sccs-search-project-dir          17          0.000388      2.282...e-05
  <self or not profiled>              17          0.000388      2.282...e-05

  vc-call-backend                     16          9.199...e-05  5.749...e-06
vc-kill-buffer-hook                 17          9.799...e-05  5.764...e-06
  <self or not profiled>              17          9.799...e-05  5.764...e-06

  parent reply	other threads:[~2008-01-01 23:21 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-27  0:11 Hideously slow VC status queries fixed Eric S. Raymond
2007-12-27  1:27 ` Tom Tromey
2007-12-27  2:19   ` Eric S. Raymond
2007-12-27 18:24     ` Richard Stallman
2007-12-29 19:18     ` Tom Tromey
2007-12-29 21:49       ` Eric S. Raymond
2007-12-30 21:54         ` Tom Tromey
2007-12-31  3:41           ` Eric S. Raymond
2007-12-31 19:09             ` Tom Tromey
2007-12-31 20:33               ` Eric S. Raymond
2007-12-31 20:58                 ` Dan Nicolaescu
2007-12-31 21:42                   ` Eric S. Raymond
2008-01-01 23:21                 ` Tom Tromey [this message]
2008-01-02  0:19                   ` Eric S. Raymond
2007-12-27 18:24   ` Richard Stallman
2007-12-28  9:02     ` Eric S. Raymond
2007-12-28 18:46       ` Tom Tromey
2007-12-28 19:36         ` Tom Tromey
2007-12-27  2:41 ` Dan Nicolaescu
2007-12-27  6:13   ` Alexandru Harsanyi
2007-12-27 13:21   ` Eric S. Raymond
2007-12-29  7:40     ` Stefan Monnier
2007-12-29  7:34 ` Stefan Monnier

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: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=m3zlvpb08h.fsf@fleche.redhat.com \
    --to=tromey@redhat.com \
    --cc=emacs-devel@gnu.org \
    --cc=esr@thyrsus.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://git.savannah.gnu.org/cgit/emacs.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).