81 lines
6.3 KiB
Text
81 lines
6.3 KiB
Text
|
[[!comment format=mdwn
|
||
|
username="joey"
|
||
|
subject="""comment 5"""
|
||
|
date="2019-01-14T21:18:17Z"
|
||
|
content="""
|
||
|
After switching many internal types to ByteString.
|
||
|
|
||
|
(Note that stack build --profile built this with -O, not -O2, so it's not
|
||
|
as fast as it ought to be, but the cost centers are probably fairly
|
||
|
accurate still.)
|
||
|
|
||
|
Mon Jan 14 17:17 2019 Time and Allocation Profiling Report (Final)
|
||
|
|
||
|
git-annex +RTS -p -RTS find
|
||
|
|
||
|
total time = 3.07 secs (3074 ticks @ 1000 us, 1 processor)
|
||
|
total alloc = 1,880,855,184 bytes (excludes profiling overheads)
|
||
|
|
||
|
COST CENTRE MODULE SRC %time %alloc
|
||
|
|
||
|
inAnnex'.checkindirect Annex.Content Annex/Content.hs:(106,9)-(121,39) 31.6 41.0
|
||
|
splitc Utility.Split Utility/Split.hs:(24,1)-(26,25) 4.8 5.2
|
||
|
keyFile' Annex.Locations Annex/Locations.hs:(518,1)-(524,30) 4.5 5.2
|
||
|
encodeW8 Utility.FileSystemEncoding Utility/FileSystemEncoding.hs:(189,1)-(191,70) 3.1 3.6
|
||
|
>>=.\ Data.Attoparsec.Internal.Types Data/Attoparsec/Internal/Types.hs:(146,9)-(147,44) 2.5 0.7
|
||
|
_encodeFilePath Utility.FileSystemEncoding Utility/FileSystemEncoding.hs:(111,1)-(114,49) 2.5 2.7
|
||
|
>>=.\.succ' Data.Attoparsec.Internal.Types Data/Attoparsec/Internal/Types.hs:146:13-76 2.2 0.2
|
||
|
fileKey' Annex.Locations Annex/Locations.hs:(532,1)-(541,41) 2.2 1.5
|
||
|
getState Annex Annex.hs:(254,1)-(257,27) 2.1 0.4
|
||
|
getAnnexLinkTarget'.probesymlink Annex.Link Annex/Link.hs:77:9-62 1.9 2.5
|
||
|
w82s Utility.FileSystemEncoding Utility/FileSystemEncoding.hs:217:1-15 1.8 5.2
|
||
|
keyPath Annex.Locations Annex/Locations.hs:(551,1)-(553,23) 1.7 3.5
|
||
|
keyFile'.esc Annex.Locations Annex/Locations.hs:(520,9)-(524,30) 1.6 4.7
|
||
|
fileKey'.go Annex.Locations Annex/Locations.hs:535:9-63 1.6 1.6
|
||
|
s2w8 Utility.FileSystemEncoding Utility/FileSystemEncoding.hs:214:1-15 1.3 3.5
|
||
|
withPtr Basement.Block.Base Basement/Block/Base.hs:(395,1)-(404,31) 1.3 0.5
|
||
|
parseLinkTarget Annex.Link Annex/Link.hs:(247,1)-(255,25) 1.2 3.8
|
||
|
parseKeyVariety Types.Key Types/Key.hs:(135,1)-(184,41) 1.2 0.0
|
||
|
assertLocal Git Git.hs:(123,1)-(129,28) 0.8 1.6
|
||
|
decodeBS' Utility.FileSystemEncoding Utility/FileSystemEncoding.hs:151:1-31 0.6 2.4
|
||
|
|
||
|
Notice that the percent of time inAnnex' went up from 14.1% to 31.6%.
|
||
|
That and getAnnexLinkTarget are the meat of the IO, so it's good for them
|
||
|
to get a higher percent of the CPU, to the extent they're IO bound.
|
||
|
It seems like getAnnexLinkTarget also lost a lot of non-IO overhead.
|
||
|
|
||
|
There are still some overheads from conversion to and from ByteString,
|
||
|
but the above does seem like a good improvement.
|
||
|
|
||
|
Mon Jan 14 17:56 2019 Time and Allocation Profiling Report (Final)
|
||
|
|
||
|
git-annex +RTS -p -RTS find --not --in web
|
||
|
|
||
|
total time = 7.62 secs (7622 ticks @ 1000 us, 1 processor)
|
||
|
total alloc = 1,908,064,368 bytes (excludes profiling overheads)
|
||
|
|
||
|
COST CENTRE MODULE SRC %time %alloc
|
||
|
|
||
|
catObjectDetails.\ Git.CatFile Git/CatFile.hs:(83,88)-(91,97) 6.5 3.8
|
||
|
catchDefaultIO Utility.Exception Utility/Exception.hs:57:1-53 6.4 2.5
|
||
|
parseResp Git.CatFile Git/CatFile.hs:(141,1)-(152,28) 4.9 5.0
|
||
|
MAIN MAIN <built-in> 4.6 0.4
|
||
|
>>=.\ Data.Attoparsec.Internal.Types Data/Attoparsec/Internal/Types.hs:(146,9)-(147,44) 4.6 1.7
|
||
|
>>=.\.succ' Data.Attoparsec.Internal.Types Data/Attoparsec/Internal/Types.hs:146:13-76 4.1 0.7
|
||
|
getState Annex Annex.hs:(254,1)-(257,27) 2.7 1.1
|
||
|
simplifyPath Utility.Path Utility/Path.hs:(38,1)-(50,48) 2.6 6.8
|
||
|
splitc Utility.Split Utility/Split.hs:(24,1)-(26,25) 2.5 5.1
|
||
|
keyFile' Annex.Locations Annex/Locations.hs:(518,1)-(524,30) 1.7 5.2
|
||
|
getAnnexLinkTarget'.probesymlink Annex.Link Annex/Link.hs:77:9-62 1.7 2.6
|
||
|
journalFile Annex.Journal Annex/Journal.hs:(107,1)-(112,33) 1.7 5.7
|
||
|
catches Control.Monad.Catch src/Control/Monad/Catch.hs:(795,1)-(799,76) 1.7 2.7
|
||
|
query.send Git.CatFile Git/CatFile.hs:137:9-32 1.6 0.5
|
||
|
delEntry Utility.Env Utility/Env.hs:(57,1)-(60,48) 1.6 0.8
|
||
|
encodeW8 Utility.FileSystemEncoding Utility/FileSystemEncoding.hs:(189,1)-(191,70) 1.4 3.5
|
||
|
query Git.CatFile Git/CatFile.hs:(130,1)-(138,26) 1.3 0.0
|
||
|
|
||
|
Notice that allocations dropped by 1/3rd!
|
||
|
|
||
|
Otherwise, not a large change here..
|
||
|
"""]]
|