You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This data looks like it's unordered-containers who is a bottleneck, and one could imagine that removing this dependency might decrease observed build times. But the truth is that unordered-containers is built in parallel with kmettoverse and do not contribute into the total wall clock time at all, so its removal would not make things faster.
We could make the output of dr-cabal more actionable by highlighting the critical path in the graph of dependencies, showing actual culprits of long compilation times. E. g.,
This sounds like a good addition to the tool 🙂 You can even highlight those libraries in bold (in addition to *) to distinguish them better from others.
Maybe it's also possible to add a couple of words in the description of what is a critical path? I mostly wonder how users can use this information and what they can do to optimise their libs or dependencies 🤔
Also, could you write a short description of the algorithm for finding a critical path? Even better in the Haddock comment 💯
I guess I didn't have enough coffee this morning so it's a bit hard to follow 🥴
Here is a build profile for https://hackage.haskell.org/package/streams:
This data looks like it's
unordered-containers
who is a bottleneck, and one could imagine that removing this dependency might decrease observed build times. But the truth is thatunordered-containers
is built in parallel with kmettoverse and do not contribute into the total wall clock time at all, so its removal would not make things faster.We could make the output of
dr-cabal
more actionable by highlighting the critical path in the graph of dependencies, showing actual culprits of long compilation times. E. g.,The sum of build times along the critical path is 30.560+24.502+23.326+16.914+11.642+9.294 = 116.238, precisely explaining the total wall time 1m56s.
I scribbled a quick-and-dirty implementation at https://github.com/Bodigrim/dr-cabal.
The text was updated successfully, but these errors were encountered: