responses
This commit is contained in:
parent
829ba8e77b
commit
a3f5158021
3 changed files with 47 additions and 0 deletions
|
@ -0,0 +1,18 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 3"""
|
||||
date="2019-09-20T16:13:39Z"
|
||||
content="""
|
||||
What is your evidence that the size of the git-annex
|
||||
executable has anything to do with that?
|
||||
|
||||
I hope you're aware that linux does not load entire programs into memory
|
||||
before running them. It mmaps them and loads pages on demand. (I assume
|
||||
most other modern OS's do similar things.)
|
||||
|
||||
It's easy to build a significantly smaller git-annex, just disable
|
||||
the assistant build flag, and you should get a binary around 30mb rather
|
||||
than 60mb. I'll wager you do not find any statistically significant
|
||||
differences in the performance of such a build of git-annex with one
|
||||
containing the assistant.
|
||||
"""]]
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 4"""
|
||||
date="2019-09-20T16:50:24Z"
|
||||
content="""
|
||||
git-annex isolates all runtime state in its Annex monad. This
|
||||
makes it easy to have multiple threads each with their own isolated state,
|
||||
which is how all its concurrency features work.
|
||||
"""]]
|
|
@ -0,0 +1,20 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 5"""
|
||||
date="2019-09-20T16:51:56Z"
|
||||
content="""
|
||||
This is not to say that the idea of having a longer-running git-annex
|
||||
process that responds to all git's smudge/clean is a bad idea. Each new
|
||||
invokation of git-annex has to re-open databases, start up git cat-file
|
||||
to query from, link the executable, read git config, etc. That takes a
|
||||
few hundred milliseconds.
|
||||
|
||||
The best way to get a longer-running git-annex process for smudge/clean
|
||||
would be to use git's long-running filter process interface. But that
|
||||
interface currently feeds the entire content of large files through a pipe
|
||||
to the git-annex process, which *very* innefficient. So git-annex doesn't
|
||||
use that interface. Improving the interface to let the clean filter read
|
||||
the content of the file itself, rather than it being piped through,
|
||||
would be the best way to improve `git add` performance.
|
||||
[[todo/git_smudge_clean_interface_suboptiomal]] does discuss this.
|
||||
"""]]
|
Loading…
Add table
Reference in a new issue