[Top][All Lists]
[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