@kha I figured out why we had a long pause in the end of this benchmark when using `11` instead of `9`. The function `deriv` was computing `d := d "x" f` (the expensive computation), printing the size of `f` and returning `d`. So, in the last step we were quickly printing the size of the input 40230090 (when using `nest deriv 11 f`), and then computing `d := d "x" f` which returns an object of size 374429936 which is never used for anything. That is, the pause had nothing to do with memory deallocation. I found this issue after I implemented the deferred free feature which did not fix the pause :) |
||
|---|---|---|
| .. | ||
| .gitignore | ||
| append.lean | ||
| append.lean.expected.out | ||
| expr.lean | ||
| expr.lean.expected.out | ||
| t1.lean | ||
| t1.lean.expected.out | ||
| t2.lean | ||
| t2.lean.expected.out | ||
| test.sh | ||
| test_flags.sh.in | ||
| thunk.lean | ||
| thunk.lean.expected.out | ||