-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ performance ] Change the order of derivation, derive one strictly after another #85
Conversation
9c3561a
to
5d3a4ba
Compare
cfb8fc7
to
6edf3fc
Compare
a4cfbb8
to
be229cb
Compare
be229cb
to
d703c80
Compare
Interestingly, this change gives non-trivial results in performance. Agenda of metic results below: E.g., on the sorted-trees example on the same machine on the compiler
So, this PR in this particular example
At the same time, we can see gain in time using this PR even on the patched GC on another, bigger example, but we haven't got precise numbers yet. |
To unpedictability of the evaluator's performance, if you replace - lg startMark
- r <- action
- lg endMark
- pure r
+ lg startMark *> action <* lg endMark in the logging mechanism, you still get degradation of the performance: With
with applied diff above we have
on the |
For the record, on the big-big model on the patched GC results are the following:
i.e. this PR 4% faster and uses 85% lesser memory. |
It is believed, that breath-first traverse of the data tree is preferrable to the depth-first traverse in the current evaluator because depth is associated with monadic binds in the |
Since this should reduce the monadic depth during derivation, this should increase the performance of the derivation