Skip to content

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

Merged
aduth merged 2 commits intomasterfrom
replace/redux-combine-reducers
Oct 30, 2018
Merged

Data: Use turbo-combine-reducers in place of Redux#11255
aduth merged 2 commits intomasterfrom
replace/redux-combine-reducers

Conversation

@aduth
Copy link
Copy Markdown
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
Copy Markdown
Member

gziolo commented Oct 30, 2018

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

@aduth
Copy link
Copy Markdown
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