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 oddity was observed by Alessio. I recompiled conjure with profiling support and discovered that, for some reason, conjure spends the majority of its time in Conjure.Language.Name.(==) when compiling the crossfigures model. Name.(==) calls Name.pretty internally, which I would definitely expect to be slow (and seems to be an odd way of comparing name equality; but I'm likely missing some context).
Comparing with other models, knapsack and nqueens, they seem to spend a lot of time in Haskell's Pipes.Internal._bind (presumably due to file I/O or similar) and Conjure.Rules.rApply (which, from my completely unfamiliar view, makes more sense: conjure is spending most time in these models applying transformation rules).
This needs further investigation by someone more familiar with the internals than I am (I literally only knew how to build+profile the thing). I know a rewrite is planned, but this should (hopefully) still be interesting.
Sample profiling data, ordered in descending order by number of entries into the function:
This oddity was observed by Alessio. I recompiled conjure with profiling support and discovered that, for some reason, conjure spends the majority of its time in
Conjure.Language.Name.(==)
when compiling the crossfigures model.Name.(==)
callsName.pretty
internally, which I would definitely expect to be slow (and seems to be an odd way of comparing name equality; but I'm likely missing some context).Comparing with other models, knapsack and nqueens, they seem to spend a lot of time in Haskell's
Pipes.Internal._bind
(presumably due to file I/O or similar) andConjure.Rules.rApply
(which, from my completely unfamiliar view, makes more sense: conjure is spending most time in these models applying transformation rules).This needs further investigation by someone more familiar with the internals than I am (I literally only knew how to build+profile the thing). I know a rewrite is planned, but this should (hopefully) still be interesting.
Sample profiling data, ordered in descending order by number of entries into the function:
Profiling data
CROSSFIGURES
NQUEENS
KNAPSACK
The text was updated successfully, but these errors were encountered: