auctex-devel
[Top][All Lists]
Advanced

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

Re: Dependency on tex-buf.el


From: David Kastrup
Subject: Re: Dependency on tex-buf.el
Date: Sat, 19 Mar 2022 12:39:19 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Ikumi Keita <ikumi@ikumi.que.jp> writes:

> Hi David and Tassilo,
>
>>>>>> David Kastrup <dak@gnu.org> writes:
>> As a note aside: we are using Git as version control system these days.
>> Git doesn't maintain change histories in the first place but computes
>> them on the fly when calling "git blame" or similar.  It has various
>> options on how thoroughly it will track content moving across files.
>
> Oh, indeed!
> ,----[ 
> https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git#_file_annotation ]
> | Another cool thing about Git is that it doesn’t track file renames
> | explicitly. It records the snapshots and then tries to figure out what
> | was renamed implicitly, after the fact. One of the interesting
> | features of this is that you can ask it to figure out all sorts of
> | code movement as well. If you pass -C to git blame, Git analyzes the
> | file you’re annotating and tries to figure out where snippets of code
> | within it originally came from if they were copied from elsewhere.
> `----
> That's a fantastic feature.

As a historic note, the awful performance of 'git blame' particularly on
files like src/xdisp.c was a strong argument against moving Emacs
development to Git.

I was conceited enough to let myself be goaded in promising to do
something about it.  A number of others have put in fixes since then; my
original work was good for about a factor of 5 in performance on files
like that.

commit 7e6ac6e4391caa0fc379cb699013d503380e4214
Author: David Kastrup <dak@gnu.org>
Date:   Sat Apr 26 01:56:49 2014 +0200

    blame: large-scale performance rewrite


Another commit even mentions src/xdisp.c explicitly:

commit 4874f544f1574a55d787339a6455f524768c1b5d
Author: David Kastrup <dak@gnu.org>
Date:   Sun May 4 19:13:57 2014 +0200

    Bump core.deltaBaseCacheLimit to 96m
    
    The default of 16m causes serious thrashing for large delta chains
    combined with large files.
    
    Here are some benchmarks (pu variant of git blame):
    
    time git blame -C src/xdisp.c >/dev/null
    
    for a repository of Emacs repacked with git gc --aggressive (v1.9,
    resulting in a window size of 250) located on an SSD drive.  The file in
    question has about 30000 lines, 1Mb of size, and a history with about
    2500 commits.

[...]


-- 
David Kastrup



reply via email to

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