summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2022-07-25 18:10:13 -0400
committerBen Sima <ben@bsima.me>2022-07-25 18:10:13 -0400
commit4e4e88f1d58063f3e24195a6299f3bcdf0c304d2 (patch)
tree6753c96f686a8abe4b1571ec95ed7e282585b7d3
parent0eb939a2b1a2886f9d52f3bd764614f43330e96a (diff)
Concurrently analyze transitive dependencies
Before: ϟ time bild Biz/Dragons.hs good: bild: Biz/Dragons.hs real 0m31.587s user 0m25.073s sys 0m6.446s After: ϟ time bild Biz/Dragons.hs good: bild: Biz/Dragons.hs real 0m17.111s user 0m39.719s sys 0m9.145s So yeah this is a good speedup.
-rw-r--r--Biz/Bild.hs2
1 files changed, 1 insertions, 1 deletions
diff --git a/Biz/Bild.hs b/Biz/Bild.hs
index 58bf8e6..270508f 100644
--- a/Biz/Bild.hs
+++ b/Biz/Bild.hs
@@ -293,7 +293,7 @@ detectImports (Namespace _ Namespace.Hs) contentLines = do
|> map (Namespace.fromHaskellModule .> Namespace.toPath)
|> traverse Dir.makeAbsolute
+> filterM Dir.doesFileExist
- +> traverse analyze -- surely this is a bottleneck ripe for caching
+ +> Async.mapConcurrently analyze
/> catMaybes
/> map langdeps
/> mconcat