Skip to content

Conversation

@SkySkimmer
Copy link
Owner

@SkySkimmer SkySkimmer commented Oct 24, 2023

ie #8

On bug_10107.v:

  • before this PR 0.037s
  • after this PR 0.043s
  • enable Ltac2 Backtrace 0.2s
  • enable Ltac Profiling 3s
  • without compiling 0.25s
  • Ltac2 Backtrace without compiling 1s
  • Ltac Profiling without compiling 30s

Note that this implementation only puts the FrLtac frames, not the ones of anon functions.

This is especially impactful for recursion as Ltac2 rec bla binders := ... becomes Ltac2 bla binders := let rec bla binders := ... in bla binders so only the top call gets a frame, and with profiling only the top call produces overhead.

We should expect that adding frames for anonymous functions / recursive calls would be significantly worse than the current results.

On bug_10107.v:
- before this PR 0.037s
- after this PR 0.043s
- enable Ltac2 Backtrace 0.2s
- enable Ltac Profiling 3s
- without compiling 0.25s
- Ltac2 Backtrace without compiling 1s
- Ltac Profiling without compiling 30s

Note that this implementation only puts the FrLtac frames, not the
ones of anon functions.

This is especially impactful for recursion as `Ltac2 rec bla binders := ...`
becomes `Ltac2 bla binders := let rec bla binders := ... in bla binders`
so only the top call gets a frame, and with profiling only the top
call produces overhead.

We should expect that adding frames for anonymous functions / recursive calls
would be significantly worse than the current results.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants