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
LtacProf makes multi-success tactics very slow #16979
Comments
Would it be possible to make an artificial test-case that displays performance slowdown as a function of number of backtracks? The overhead should be a function of the number of backtracks, the size of the callstack, and the size of the difference in the callstack between the backtracking point and the multisuccess tactic. The relevant bit of algorithmic implemention is at coq/plugins/ltac/profile_ltac.ml Lines 343 to 378 in 97f9c65
|
Hmm. I'd guess the first example backtracks 0 times. There may be some backtracks in the second example, but still I wouldn't expect many. |
What's the significance of "multisuccess" if there's no backtracking? (I'd be extremely surprised if LtacProf impacted performance of |
Description of the problem
LtacProf makes multi-success tactics very slow.
Moderate test case: https://github.com/mit-plv/bedrock2/blob/master/bedrock2/src/bedrock2Examples/swap.v#L61 (hundreds of milliseconds).
Large case: https://github.com/mit-plv/fiat-crypto/blob/c68a80bace827202d962815eda3522fae83f0108/src/Bedrock/End2End/X25519/GarageDoor.v#L251 (longer than I was willing to wait)
Is this issue well-known, or would it be worth minimizing the Bedrock2 example?
Coq Version
8.15.0
The text was updated successfully, but these errors were encountered: