Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Do more aggressive lambda lifting #1886

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

OlivierNicole
Copy link
Contributor

With @vouillon we realized that the Lambda_lifting_simple pass that is performed by double translation makes some programs significantly faster. We measured roughly a 1.45 speedup on a large (proprietary) Bonsai benchmark. Presumably V8 is much faster with more toplevel functions and less nested closures.

Making this a draft PR for now because:

  • It should probably be behind a flag: it makes the generated Javascript further from the source code structure;
  • It theoretically results in a quadratic code size.

We probably need to do some measurements before merging. (And maybe with other engines.)

@vouillon vouillon force-pushed the more-lambda-lifting branch 2 times, most recently from 83fff63 to 418e0ed Compare March 21, 2025 14:20
@vouillon vouillon force-pushed the more-lambda-lifting branch from 580b603 to e76cef3 Compare April 7, 2025 13:28
With @vouillon we realized that the `Lambda_lifting_simple` pass that is
performed by double translation makes some programs significantly
faster. We measured roughly a 1.45 speedup on a large (proprietary)
Bonsai benchmark. Presumably V8 is much faster with more toplevel
functions and less nested closures.
@vouillon vouillon force-pushed the more-lambda-lifting branch from b59bd3e to 25929ef Compare April 7, 2025 22:10
@OlivierNicole
Copy link
Contributor Author

This seems to result in a modest speedup on average, including on partial_render_table. Is this the version of the benchmark that has a memory leak?

@vouillon
Copy link
Member

vouillon commented Apr 8, 2025

This seems to result in a modest speedup on average, including on partial_render_table. Is this the version of the benchmark that has a memory leak?

No, I'm using a workaround.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants