comment
This commit is contained in:
parent
bb68909cb5
commit
68e9b7f987
2 changed files with 39 additions and 1 deletions
|
@ -439,7 +439,7 @@ createMessage = fromMaybe "branch created" . annexCommitMessage <$> Annex.getGit
|
||||||
|
|
||||||
{- Stages the journal, and commits staged changes to the branch. -}
|
{- Stages the journal, and commits staged changes to the branch. -}
|
||||||
commit :: String -> Annex ()
|
commit :: String -> Annex ()
|
||||||
commit = whenM (journalDirty gitAnnexJournalDir) . forceCommit
|
commit = whenM (journalDirty gitAnnexJournalDir) . tforceCommit
|
||||||
|
|
||||||
{- Commits the current index to the branch even without any journalled
|
{- Commits the current index to the branch even without any journalled
|
||||||
- changes. -}
|
- changes. -}
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 1"""
|
||||||
|
date="2022-07-13T17:09:59Z"
|
||||||
|
content="""
|
||||||
|
Is this the same machine that is 60x slower than my laptop at `git-annex
|
||||||
|
init`?
|
||||||
|
|
||||||
|
Is catting a single file from the journal measurably
|
||||||
|
slower when the directory has so many files in it vs a small number?
|
||||||
|
|
||||||
|
200k files in a directory does not produce a measurable slow down at reading a
|
||||||
|
random file for me:
|
||||||
|
|
||||||
|
root@darkstar:/home/joey/tmp/d>ls -1 |wc -l
|
||||||
|
200000
|
||||||
|
root@darkstar:/home/joey/tmp/d>sync; echo 3 > /proc/sys/vm/drop_caches
|
||||||
|
root@darkstar:/home/joey/tmp/d>/usr/bin/time cat 99999
|
||||||
|
99999
|
||||||
|
0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 1868maxresident)k
|
||||||
|
|
||||||
|
At 2 million files, that cat is still running in 0s here. Writing to a new
|
||||||
|
file and overwriting an existing file also are still very fast.
|
||||||
|
|
||||||
|
It does take around 3 seconds to list the contents of the directory (37 seconds
|
||||||
|
with 2 million files), but the only time git-annex does that is when it commits
|
||||||
|
the journal, which is done only once per command.
|
||||||
|
|
||||||
|
Committing the journal more frequently to keep the number of files down would
|
||||||
|
mean more commits to the git-annex branch. Also committing has overhead, and
|
||||||
|
probably more overhead than listing a directory with a lot of files in it has.
|
||||||
|
|
||||||
|
What might be worth considering is periodically staging the journal to the
|
||||||
|
annex index file without immediately committing it (still making one commit at
|
||||||
|
the end). That seems like it would probably be safe to do, although I have not
|
||||||
|
fully analized it. But I'm not convinced it would be an optmisation; it would
|
||||||
|
mean repeatedly re-writing the index file, which gets expensive.
|
||||||
|
"""]]
|
Loading…
Reference in a new issue