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

Data: Use turbo-combine-reducers in place of Redux #11255

Merged
merged 2 commits into from
Oct 30, 2018

Conversation

aduth
Copy link
Member

@aduth aduth commented Oct 30, 2018

Extracted from: #10844

This pull request seeks to swap the implementation of combineReducers from Redux to a performance-optimized drop-in variant turbo-combine-reducers, a side-project maintained by myself. Benchmarks demonstrate improvement in the range of 92x over Redux on the high-end (Firefox, Chrome) and 10x on the low-end (Safari). Try benchmark yourself.

Implementation notes:

Since this export is already abstracted under @wordpress/data, there should be zero impact of the drop-in replacement on implementers. The only difference is the lack of "friendly" validations otherwise offered through Redux's implementations (the undesirable nature of the validations is what led to its development for #10844).

Testing instructions:

There should be no notable impact on behaviors.

Ensure tests pass:

npm test

@aduth aduth added [Type] Performance Related to performance efforts [Package] Data /packages/data labels Oct 30, 2018
@aduth aduth requested a review from gziolo October 30, 2018 18:10
@gziolo
Copy link
Member

gziolo commented Oct 30, 2018

package-lock.json needs to be updated and is going to be ready to go 😄

@aduth
Copy link
Member Author

aduth commented Oct 30, 2018

Ack! I've been struggling with the package-lock.json file, probably because I had it symlinked at one point. I must have unset it in my latest rebase. I'll give it another go.

@gziolo gziolo added this to the 4.2 milestone Oct 30, 2018
@aduth aduth merged commit 0f11300 into master Oct 30, 2018
@aduth aduth deleted the replace/redux-combine-reducers branch October 30, 2018 19:26
daniloercoli added a commit that referenced this pull request Oct 31, 2018
…rnmobile/port-quote-block-step-1

* 'master' of https://github.com/WordPress/gutenberg: (21 commits)
  Fix property path on get() call (#10962)
  Fixed typos on block api documentation (#11298)
  Export `switchToBlockType` to be used mobile side when merging two blocks. (#11294)
  RichText: Remove unused `ref` assignment to RichText (#11222)
  Remove findDOMNode from Tooltip component (#11169)
  Components: Remove redundant onClickOutside handler from Dropdown (#11253)
  added myself to the contributors list (#11260)
  Add complete post type labels for Resuable Blocks (#11278)
  Increase specificity for active radio/checkbox input styling (#11290)
  Fixed "artifact" misspelling in docs. (#11291)
  Nux package: fix incorrect named deprecated import (#11283)
  Rename parentClientId to rootClientId for consistency (#11274)
  chore(release): update changelog files
  chore(release): publish
  Update plugin version to 4.2.0. (#11258)
  Data: Use turbo-combine-reducers in place of Redux (#11255)
  Revert using Icon in IconButton to avoid regression in plugin icons (pinned icons) (#11256)
  Block List: Use default Inserter for sibling insertion (#11018)
  Editor: Optimize Inserter props generation and reconciliation (#11243)
  RichText: fix format placeholder (#11102)
  ...

# Conflicts:
#	packages/block-library/src/quote/index.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Data /packages/data [Type] Performance Related to performance efforts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants