perf: don't enqueue last object in the deletion list - #15004
Conversation
|
!radar |
|
!radar |
|
Benchmark results for 0a39fc4 against 138ca9f are in. There are significant results. @TwoFX
Large changes (7✅, 5🟥)
Medium changes (5✅, 9🟥)
Small changes (7✅, 422🟥)
|
|
Reference manual CI status:
|
|
Mathlib CI status (docs):
|
|
!radar |
|
Benchmark results for 27f2f40 against 138ca9f are in. There are significant results. @TwoFX
Large changes (12✅)
Medium changes (5✅)
Small changes (418✅)
|
|
!bench mathlib |
|
Benchmark results for leanprover-community/mathlib4-nightly-testing@cc1cc23 against leanprover-community/mathlib4-nightly-testing@aee6a83 are in. There are significant results. @TwoFX
Large changes (1✅)
Small changes (17✅, 31🟥)
|
|
!radar |
|
Benchmark results for cc59af7 against 138ca9f are in. There are significant results. @TwoFX
Large changes (10✅, 1🟥)
Medium changes (5✅, 1🟥)
Small changes (460✅, 2🟥)
|
This PR removes the long-obsolete `LEAN_LAZY_RC` option. This will make leanprover#15004 slightly easier to land, if we decide to land that one.
This PR slightly optimizes the freeing logic in the runtime.
When deleting an object, instead of looping over all children and adding them to the deletion list if they are also no longer needed, we loop over all children except for the last one. Afterwards, if the last child also needs to be deleted, we immediately continue with that child. This saves us from having to add that child to the deletion list.