emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Speeding up vc-dired still more


From: Dan Nicolaescu
Subject: Re: Speeding up vc-dired still more
Date: Thu, 27 Dec 2007 11:27:23 -0800

"Eric S. Raymond" <address@hidden> writes:

  > Dan Nicolaescu <address@hidden>:
  > > That will show  1000 calls to vc-bzr-registered, vc-git-registered,
  > > vc-arch-registered, vc-svn-registered etc etc.
  > 
  > Not any more.  I've added a check against
  > completion-ignored-extensions, encapsulated in a new function called
  > vc-dired-ignorable-p.

Thanks, much better now.

There's still some more performance left to be squeezed out.

For the Linux kernel, with 5 files modified 
git ls-files | wc -l
22555

find . -type f 
shows a similar number.

The elp-results after doing an C-x v d in the kernel directory are:


Function Name                             Call Count  Elapsed Time  Average Time
========================================  ==========  ============  ============
vc-directory                              1           411.40415     411.40415
vc-dired-hook                             1           390.315596    390.315596
vc-backend                                22567       350.89581700  0.0155490679
vc-registered                             22553       348.03225700  0.0154317499
vc-call-backend                           135338      344.50350300  0.0025455046
vc-git-registered                         22553       315.02742200  0.0139683156
vc-git--out-ok                            22553       301.38389399  0.0133633615
vc-git--call                              22553       300.84999399  0.0133396884
^^^^^^^^^^^^
This seems to take most of the time. There are too many calls
vc-registered (which calls vc-git-registered, which in turn calls vc-git--call).

It seems that the vc-registered calls should not be necessary,
vc-git-dir-state should get the state for most of those files...


vc-find-root                              45111       22.290543000  0.0004941265
vc-default-registered                     45106       9.6466160000  0.0002138654
vc-git-root                               22556       8.4365439999  0.0003740266
vc-check-master-templates                 45106       8.0527110000  0.0001785285
vc-file-getprop                           112787      3.1722110000  2.812...e-05
vc-file-setprop                           45146       2.7922379999  6.184...e-05
vc-dired-ignorable-p                      22570       2.5674069999  0.0001137530
vc-possible-master                        135318      2.4839079999  1.835...e-05
vc-dired-purge                            1           1.728984      1.728984
vc-git-dir-state                          1           1.210754      1.210754
vc-state                                  22560       0.5940990000  2.633...e-05
vc-make-backend-sym                       45117       0.4681929999  1.037...e-05
vc-git-command                            1           0.144623      0.144623
vc-do-command                             1           0.144614      0.144614
vc-kill-buffer-hook                       22555       0.0699610000  3.101...e-06
vc-dired-mode                             1           0.060731      0.060731
vc-responsible-backend                    2           0.055134      0.027567
vc-find-backend-function                  11          0.0533559999  0.0048505454
vc-dired-reformat-line                    6           0.001267      0.0002111666
vc-git-responsible-p                      3           0.000387      0.000129
vc-git-dired-state-info                   6           0.000136      2.266...e-05
vc-delistify                              2           6e-06         3e-06
vc-exec-after                             1           6e-06         6e-06




reply via email to

[Prev in Thread] Current Thread [Next in Thread]