Skip to content
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

Implement module-level memoization of inlined requires #1346

Closed
wants to merge 1 commit into from

Conversation

robhogan
Copy link
Contributor

@robhogan robhogan commented Sep 6, 2024

Summary:
A performance optimisation for inlineRequries, where we replace const foo = require('./foo') at top level with var foo, and replace subsequent references to foo with (foo || foo = require('./foo').

This differs from plain inlineRequires by the use of the memo variable, which (for modules that don't return a falsy value) saves calling into require, backed by metroRequire, and retrieving the previously-initialised module from a Map by its numeric ID.

 - **[Experimental]:** Implement `transformer.unstable_memoizeInlineRequires` to optimise inlined access.

Reviewed By: javache

Differential Revision: D62125134

Summary:
A performance optimisation for `inlineRequries`, where we replace `const foo = require('./foo')` at top level with `var foo`, and replace subsequent references to `foo` with `(foo || foo = require('./foo')`.

This differs from plain `inlineRequires` by the use of the memo variable, which (for modules that don't return a falsy value) saves calling into `require`, backed by `metroRequire`, and retrieving the previously-initialised module from a `Map` by its numeric ID.

```
 - **[Experimental]:** Implement `transformer.unstable_memoizeInlineRequires` to optimise inlined access.
```

Reviewed By: javache

Differential Revision: D62125134
@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 6, 2024
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D62125134

@facebook-github-bot
Copy link
Contributor

This pull request has been merged in f35992c.

@robhogan robhogan deleted the export-D62125134 branch September 6, 2024 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants