git-annex/Git
Joey Hess 9eb10caa27
Some optimisations to string splitting code.
Turns out that Data.List.Utils.split is slow and makes a lot of
allocations. Here's a much simpler single character splitter that behaves
the same (even in wacky corner cases) while running in half the time and
75% the allocations.

As well as being an optimisation, this helps move toward eliminating use of
missingh.

(Data.List.Split.splitOn is nearly as slow as Data.List.Utils.split and
allocates even more.)

I have not benchmarked the effect on git-annex, but would not be surprised
to see some parsing of eg, large streams from git commands run twice as
fast, and possibly in less memory.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2017-01-31 19:06:22 -04:00
..
Command update my email address and homepage url 2015-01-21 12:50:09 -04:00
Remote desc 2015-04-19 08:18:17 -04:00
AutoCorrect.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Branch.hs Pass -S to git commit-tree when commit.gpgsign is set and when making a non-automatic commit, in order to preserve current behavior when used with git 1.9, which has stopped doing this itself. 2016-06-02 15:07:20 -04:00
BuildVersion.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
CatFile.hs Always use filesystem encoding for all file and handle reads and writes. 2016-12-24 14:46:31 -04:00
CheckAttr.hs restart coprocess in raw mode 2016-11-01 14:03:59 -04:00
CheckIgnore.hs restart coprocess in raw mode 2016-11-01 14:03:59 -04:00
Command.hs Some optimisations to string splitting code. 2017-01-31 19:06:22 -04:00
Config.hs Some optimisations to string splitting code. 2017-01-31 19:06:22 -04:00
Construct.hs Some optimisations to string splitting code. 2017-01-31 19:06:22 -04:00
CurrentRepo.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
DiffTree.hs fix lack of laziness streaming large diffs 2017-01-31 17:43:11 -04:00
DiffTreeItem.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Env.hs Optimisations to git-annex branch query and setting, avoiding repeated copies of the environment. 2016-09-29 13:36:48 -04:00
FileMode.hs fix various build warnings, mostly on Windows 2015-10-13 13:24:44 -04:00
Filename.hs fix use of hifalutin terminology 2015-11-16 14:37:31 -04:00
FilePath.hs --branch, stage 2 2016-07-20 15:23:43 -04:00
Fsck.hs Assistant, repair: Fix ignoring of git fsck errors due to duplicate file entries in tree objects. 2016-10-31 14:00:37 -04:00
GCrypt.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
HashObject.hs Always use filesystem encoding for all file and handle reads and writes. 2016-12-24 14:46:31 -04:00
Hook.hs Windows: Handle shebang in external special remote program. 2016-09-05 12:09:23 -04:00
Index.hs git's handing of relative GIT_INDEX_FILE is more insane than I thought; always make absolute 2016-05-22 15:02:55 -04:00
LockFile.hs replicate git's message about an existing lock file 2016-03-03 13:06:39 -04:00
LsFiles.hs remove Params constructor from Utility.SafeCommand 2015-06-01 13:52:23 -04:00
LsTree.hs forgot to use sfile 2016-02-26 16:12:40 -04:00
Merge.hs --allow-unrelated-histories will be in git 2.9.0, not 2.8.2 2016-04-27 13:54:46 -04:00
Objects.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Queue.hs Always use filesystem encoding for all file and handle reads and writes. 2016-12-24 14:46:31 -04:00
Ref.hs Some optimisations to string splitting code. 2017-01-31 19:06:22 -04:00
RefLog.hs Only look at reflogs for relevant branches, not for git-annex branches 2015-07-07 17:36:30 -04:00
Remote.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Repair.hs Always use filesystem encoding for all file and handle reads and writes. 2016-12-24 14:46:31 -04:00
Sha.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
SharedRepository.hs Support git's undocumented core.sharedRepository=2 value, which is equivilant to "world". 2015-07-06 15:33:44 -04:00
Status.hs status: Show added but not yet committed files. 2015-09-22 17:32:28 -04:00
Tree.hs restart coprocess in raw mode 2016-11-01 14:03:59 -04:00
Types.hs avoid withWorkTreeRelated affecting annex symlink calculation 2016-04-08 14:24:00 -04:00
UnionMerge.hs Always use filesystem encoding for all file and handle reads and writes. 2016-12-24 14:46:31 -04:00
UpdateIndex.hs Always use filesystem encoding for all file and handle reads and writes. 2016-12-24 14:46:31 -04:00
Url.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Version.hs more {-# OPTIONS_GHC -fno-warn-tabs #-} ... Forcing people who have what is merely a difference of opinion to you to do this is a bit of an asshole move. Just saying. 2015-05-10 16:38:49 -04:00