git-annex/Git
Joey Hess a0758bdd10
dynamically disable filter-process in restagePointerFile when it would be slower
Based on my earlier benchmark, I have a rough cost model for how
expensive it is for git-annex smudge to be run on a file, vs
how expensive it is for a gigabyte of a file's content to be read and
piped through to filter-process.

So, using that cost model, it can decide if using filter-process will
be more or less expensive than running the smudge filter on the files to
be restaged.

It turned out to be *really* annoying to temporarily disable
filter-process. I did find a way, but urk, this is horrible. Notice
that, if it's interrupted with it disabled, it will remain disabled
until the next time restagePointerFile runs. Which could be some time
later. If the user runs `git add` or `git checkout` on a lot of small
files before that, they will see slower than expected performance.

(This commit also deletes where I wrote down the benchmark results
earlier.)

Sponsored-by: Noam Kremen on Patreon
2021-11-08 16:20:34 -04:00
..
Command update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Remote Removed support for git versions older than 2.1 2019-09-11 16:14:43 -04:00
AutoCorrect.hs all commands building except for assistant 2019-12-05 14:41:18 -04:00
Branch.hs sync --quiet 2021-07-19 11:28:47 -04:00
BuildVersion.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CatFile.hs separate handles for cat-file and cat-file --batch-check 2021-09-24 13:16:13 -04:00
CheckAttr.hs mincopies 2021-01-06 14:15:19 -04:00
CheckIgnore.hs more RawFilePath conversion 2020-11-03 10:11:04 -04:00
Command.hs fixed reconcileStaged crash when index is locked or in conflict 2021-05-24 11:33:23 -04:00
Config.hs dynamically disable filter-process in restagePointerFile when it would be slower 2021-11-08 16:20:34 -04:00
ConfigTypes.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Construct.hs avoid crashing tilde expansion on user who does not exist 2021-10-13 09:16:36 -04:00
Credential.hs started converting Ref from String to ByteString 2020-04-06 17:14:49 -04:00
CurrentRepo.hs avoid making absolute git remote path relative 2021-02-08 13:18:01 -04:00
DiffTree.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
DiffTreeItem.hs ByteString Ref continued 2020-04-07 11:54:27 -04:00
Env.hs convert TopFilePath to use RawFilePath 2019-12-09 15:07:21 -04:00
FileMode.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Filename.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
FilePath.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
FilterProcess.hs reorg 2021-11-04 15:03:12 -04:00
Fsck.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
GCrypt.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
HashObject.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
History.hs convert to withCreateProcess for async exception safety 2020-06-03 15:48:09 -04:00
Hook.hs fix build on windows 2020-11-20 12:53:25 -04:00
Index.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
LockFile.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
LsFiles.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
LsTree.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Merge.hs sync --quiet 2021-07-19 11:28:47 -04:00
Objects.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
PktLine.hs update 2021-11-05 10:53:11 -04:00
Queue.hs dynamically disable filter-process in restagePointerFile when it would be slower 2021-11-08 16:20:34 -04:00
Ref.hs remove errant print debug 2021-10-03 18:18:04 -04:00
RefLog.hs ByteString Ref continued 2020-04-07 11:54:27 -04:00
Remote.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Repair.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Sha.hs started converting Ref from String to ByteString 2020-04-06 17:14:49 -04:00
Ssh.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Status.hs convert TopFilePath to use RawFilePath 2019-12-09 15:07:21 -04:00
Tree.hs ImportableContentsChunkable 2021-10-08 13:15:22 -04:00
Types.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
UnionMerge.hs fix all remaining -Wincomplete-uni-patterns warnings 2020-04-15 13:55:08 -04:00
UpdateIndex.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Url.hs avoid partial functions in Git.Url 2021-01-18 15:07:23 -04:00
Version.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00