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

fix: use static closures when possible #764

Merged
merged 2 commits into from
Jul 19, 2023

Conversation

justlevine
Copy link
Contributor

Your checklist for this pull request

Thanks for sending a pull request! Please make sure you click the link above to view the contribution guidelines, then fill out the blanks below.

🚨Please review the guidelines for contributing to this repository.

  • Make sure you are making a pull request against the develop branch (left side). Also you should start your branch off our develop.
  • Make sure you are requesting to pull request from a topic/feature/bugfix/devops branch (right side). Don't pull request from your master!
  • Have you ensured/updated that CLI tests to extend coverage to any new logic. Learn how to modify the tests here.

What does this implement/fix? Explain your changes.

This PR fixes the use of anonymous functions and closures in the codebase to be called statically when the class instance is not used inside the method.

This change reduces the memory usage significantly, as non-static closures store a copy of the instance and its properties, which can get very large and complex such as for models, and often don't get garbage collected. Learn more

Branch is based off of #763, which should be merged first.

Does this close any currently open issues?

Any relevant logs, error output, GraphiQL screenshots, etc?

(If it’s long, please paste to https://ghostbin.com/ and insert the link here.)

Any other comments?

  • I didnt do any actual performance testing, but anecdotally static build times and ci seem faster.
  • Audited with WPGraphQL Coding Standards.

Where has this been tested?

  • WooGraphQL Version: 0.14.1
  • WPGraphQL Version: 1.14.6
  • WordPress Version: 6.2.2
  • WooCommerce Version: 7.8.2

Copy link
Member

@kidunot89 kidunot89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

@kidunot89 kidunot89 merged commit d4927b9 into wp-graphql:develop Jul 19, 2023
@justlevine justlevine deleted the fix/use-static-closures branch July 19, 2023 20:01
@kidunot89 kidunot89 added the dev-ops PR resolves an issue or implements a feature related to the development process label Jul 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev-ops PR resolves an issue or implements a feature related to the development process
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants