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

Env: Improve install performance #23806

Merged
merged 6 commits into from
Jul 9, 2020

Conversation

noahtallen
Copy link
Member

@noahtallen noahtallen commented Jul 8, 2020

Description

Resolves #23175. Improves startup performance by not re-launching the docker service over and over again. Rather, we run all the commands in bash with a single service execution.

Additionally, I removed the behavior which activates the first theme in the list. I personally think this is ok to do since it's really annoying to have your chosen theme be overwritten every time you start wp-env.

How has this been tested?

Locally in wp-env; CI should pass

Performance improvement

Each value below is the fastest run time out of 5 runs.

Fresh Install* Fresh Start Restart (already running)
Previously 63 seconds 24 seconds 29 seconds
Now 🔥 49 seconds 10 seconds 13 seconds

In general, we see that wp-env runs around 14 seconds faster, which about twice as fast in normal use cases. We can further improve this by avoiding WordPress configuration when nothing has changed in the config files.

  • The performance of a fresh install is mostly affected by your internet connection for downloading WordPress.

Types of changes

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

@noahtallen noahtallen added [Type] Build Tooling Issues or PRs related to build tooling [Type] Performance Related to performance efforts [Package] Env /packages/env labels Jul 8, 2020
@noahtallen noahtallen self-assigned this Jul 8, 2020
@noahtallen noahtallen changed the title Run all configuration commands at the same time Env: Improve install performance Jul 8, 2020
@github-actions
Copy link

github-actions bot commented Jul 8, 2020

Size Change: 0 B

Total Size: 1.14 MB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.67 kB 0 B
build/api-fetch/index.js 3.39 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 7.67 kB 0 B
build/block-directory/style-rtl.css 944 B 0 B
build/block-directory/style.css 945 B 0 B
build/block-editor/index.js 115 kB 0 B
build/block-editor/style-rtl.css 10.8 kB 0 B
build/block-editor/style.css 10.8 kB 0 B
build/block-library/editor-rtl.css 7.54 kB 0 B
build/block-library/editor.css 7.54 kB 0 B
build/block-library/index.js 130 kB 0 B
build/block-library/style-rtl.css 7.75 kB 0 B
build/block-library/style.css 7.76 kB 0 B
build/block-library/theme-rtl.css 728 B 0 B
build/block-library/theme.css 729 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 48.2 kB 0 B
build/components/index.js 199 kB 0 B
build/components/style-rtl.css 15.8 kB 0 B
build/components/style.css 15.8 kB 0 B
build/compose/index.js 9.56 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.46 kB 0 B
build/date/index.js 5.38 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 3.23 kB 0 B
build/edit-navigation/index.js 10.8 kB 0 B
build/edit-navigation/style-rtl.css 1.08 kB 0 B
build/edit-navigation/style.css 1.08 kB 0 B
build/edit-post/index.js 304 kB 0 B
build/edit-post/style-rtl.css 5.59 kB 0 B
build/edit-post/style.css 5.58 kB 0 B
build/edit-site/index.js 16.6 kB 0 B
build/edit-site/style-rtl.css 3.03 kB 0 B
build/edit-site/style.css 3.03 kB 0 B
build/edit-widgets/index.js 9.35 kB 0 B
build/edit-widgets/style-rtl.css 2.45 kB 0 B
build/edit-widgets/style.css 2.45 kB 0 B
build/editor/editor-styles-rtl.css 537 B 0 B
build/editor/editor-styles.css 539 B 0 B
build/editor/index.js 45 kB 0 B
build/editor/style-rtl.css 3.78 kB 0 B
build/editor/style.css 3.78 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.71 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 709 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.32 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.4 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 13.9 kB 0 B
build/server-side-render/index.js 2.71 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.13 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@epiqueras
Copy link
Contributor

There is a permissions issue with phpunit-wp-config.

@noahtallen
Copy link
Member Author

Currently failing in CI with: bash: /var/www/html/phpunit-wp-config.php: Permission denied

which is interesting because it worked before 🤔 possible changes affecting it:

  1. run with bash not sh
  2. run with ci container, not wordpress
  3. run with docker run, not docker exec

@noahtallen noahtallen force-pushed the try/wp-env-start-performance-improvement branch from 823dc33 to 8440abc Compare July 8, 2020 22:00
@noahtallen
Copy link
Member Author

Everything should be fixed now. We'll just leave the command for phpunit config the same since it might be removed with #23171

@noahtallen noahtallen merged commit 5943777 into master Jul 9, 2020
@noahtallen noahtallen deleted the try/wp-env-start-performance-improvement branch July 9, 2020 01:22
@github-actions github-actions bot added this to the Gutenberg 8.6 milestone Jul 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Env /packages/env [Type] Build Tooling Issues or PRs related to build tooling [Type] Performance Related to performance efforts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Env: Improve install performance
2 participants