-
Notifications
You must be signed in to change notification settings - Fork 487
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 #43 - Search page UI responsiveness sluggish when many spans in results #46
Fix #43 - Search page UI responsiveness sluggish when many spans in results #46
Conversation
Fix an issue with the search page that shows up when there are many spans (cumulatively) in the search results. Issue at hand is the mapStateToProps function calls .toJS() on some of the immutableJS state values, transforms the resulting values, then passes the transformed values to reselect. The .toJS() invocation prevents the calculations from being memoized by reselect because it always results in new objects or arrays. The change is to wrap the .toJS() call and subsequent transformation in a function, the result of which is cached based on the state value. The caching resolves the issue. Only the last result needs to be cached because these are top-level state values (vs transforming items in an array) and therefore a state value will never be revisited.
src/utils/get-last-xform-cacher.js
Outdated
* | ||
* @param {function} xformer The transformer function, the most recent result | ||
* of which is cached. | ||
* @return {function} A wrapper around the transformer function which which |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
which which
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks.
@@ -218,20 +220,32 @@ SearchTracePage.propTypes = { | |||
errorMessage: PropTypes.string, | |||
}; | |||
|
|||
const stateTraceXformer = getLastXformCacher(stateTrace => { | |||
const { traces: traceMap, loading, error: traceError } = stateTrace.toJS(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q (curious): how is stateTrace
represented in the first place? What does the call to toJS()
achieve?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The state is an Immutable.js Map. .toJS()
converts it to a plain JS object. The .toJS()
call is probably superfluous; I'll go over why I didn't take it out in our discussion Wednesday.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
src/utils/get-last-xform-cacher.js
Outdated
* caches the last transformation, returning the cached | ||
* value if the source value is the same. | ||
*/ | ||
export default function getLastXformCacher(xformer) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't reselect or lodash memoize do this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@saminzadeh Most likely not as we only need the last calculated value to be cached rather than the function to be fully memoized.
return function getOrCache(...args) { | ||
const sameArgs = lastArgs && | ||
lastArgs.length === args.length && | ||
lastArgs.every((lastArg, i) => lastArg === args[i]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If .toJS() is returning a new reference, would lastArg === args[i]
fail the test?
Also, _.memoize does the same thing but stores any existing computations rather than just the last computation. You can also pass a custom cache resolver if we need to
https://lodash.com/docs/4.17.4#memoize
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@saminzadeh The immutable JS values are the params to the transform functions; .toJS()
is called within the transform functions, so the caching with the param as the key should be fine.
In this case, we only care about caching the last calculation. Params to the transform function will never be revisited, so we don't need to cache anything other than the most recent calculation.
The reason the params will never be revisited is because they are top level values on the state, traces
and services
. When the search results change, traces
will be different, and the previous value will never be revisited even if an identical search is executed. Same thing with services
.
…esults (#46) * update eslint-plugin-react, avoid eslintrc warnings * .eslintrc env for browser, jest and jasmine * Fix #43 - Search page responsiveness issues Fix an issue with the search page that shows up when there are many spans (cumulatively) in the search results. Issue at hand is the mapStateToProps function calls .toJS() on some of the immutableJS state values, transforms the resulting values, then passes the transformed values to reselect. The .toJS() invocation prevents the calculations from being memoized by reselect because it always results in new objects or arrays. The change is to wrap the .toJS() call and subsequent transformation in a function, the result of which is cached based on the state value. The caching resolves the issue. Only the last result needs to be cached because these are top-level state values (vs transforming items in an array) and therefore a state value will never be revisited. * Fix yarn lock file, e.g. use npm registry * Fix typo in comment Signed-off-by: vvvprabhakar <[email protected]>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [npm-run-all2](https://togithub.com/bcomnes/npm-run-all2) | [`5.0.0` -> `6.2.2`](https://renovatebot.com/diffs/npm/npm-run-all2/5.0.0/6.2.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/npm-run-all2/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/npm-run-all2/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/npm-run-all2/5.0.0/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/npm-run-all2/5.0.0/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>bcomnes/npm-run-all2 (npm-run-all2)</summary> ### [`v6.2.2`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v622) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.2.1...v6.2.2) ##### Commits - Revert "Compatibility: npm, yarn and pnpm run scripts" [`fc35f0d`](https://togithub.com/bcomnes/npm-run-all2/commit/fc35f0dc4f78afc1c631fa94b6ac85ba0fb0e7b1) ### [`v6.2.1`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v621) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.2.0...v6.2.1) ##### Merged - Compatibility: npm, yarn and pnpm run scripts [`#143`](https://togithub.com/bcomnes/npm-run-all2/pull/143) - Use neostandard + add more static code analysis [`#142`](https://togithub.com/bcomnes/npm-run-all2/pull/142) - Upgrade: Bump c8 from 9.1.0 to 10.0.0 [`#141`](https://togithub.com/bcomnes/npm-run-all2/pull/141) - Upgrade: Bump p-queue from 7.4.1 to 8.0.1 [`#138`](https://togithub.com/bcomnes/npm-run-all2/pull/138) ### [`v6.2.0`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v620) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.1.2...v6.2.0) ##### Merged - Placeholder that unfolds into multiple tasks [`#134`](https://togithub.com/bcomnes/npm-run-all2/pull/134) - 📝 add compatibility note for pnpm. [`#136`](https://togithub.com/bcomnes/npm-run-all2/pull/136) - Upgrade: Bump codecov/codecov-action from 3 to 4 [`#131`](https://togithub.com/bcomnes/npm-run-all2/pull/131) ### [`v6.1.2`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v612) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.1.1...v6.1.2) ##### Merged - feat: move to read-package-json-fast [`#130`](https://togithub.com/bcomnes/npm-run-all2/pull/130) - Upgrade: Bump c8 from 8.0.1 to 9.0.0 [`#127`](https://togithub.com/bcomnes/npm-run-all2/pull/127) - Upgrade: Bump github/codeql-action from 2 to 3 [`#126`](https://togithub.com/bcomnes/npm-run-all2/pull/126) - Upgrade: Bump actions/setup-node from 3 to 4 [`#123`](https://togithub.com/bcomnes/npm-run-all2/pull/123) ##### Commits - Publish the whole project [`3dde20c`](https://togithub.com/bcomnes/npm-run-all2/commit/3dde20c1c8fa973045773e03f4fc121360fdbed4) - Utilize CJS require for 'read-package-json-fast' [`605ca15`](https://togithub.com/bcomnes/npm-run-all2/commit/605ca15d9adee3ce14da6fcaa98cb14d9c03795c) - Update FUNDING.yml [`c838ee9`](https://togithub.com/bcomnes/npm-run-all2/commit/c838ee9eea06e545d1a7f25592f7beb8468f1afd) ### [`v6.1.1`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v611) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.1.0...v6.1.1) ##### Commits - Add an npm-run-all2 bin alias [`e6dc017`](https://togithub.com/bcomnes/npm-run-all2/commit/e6dc0175006a9a703c1256949f8424922043a33a) - Fix npx on node 16 [`cfbd974`](https://togithub.com/bcomnes/npm-run-all2/commit/cfbd974a5990e8d549ae8bf7bfb632424ff4990b) ### [`v6.1.0`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v610---2023-10-04) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.0.6...v6.1.0) ##### Merged - Upgrade: Bump actions/checkout from 3 to 4 [`#119`](https://togithub.com/bcomnes/npm-run-all2/pull/119) ##### Commits - Lets avoid spawn.sync [`a3ee6cd`](https://togithub.com/bcomnes/npm-run-all2/commit/a3ee6cd9e051471bfd7b1b4d153aa260fc9b6634) - Add support for pnpm ([#​117](https://togithub.com/bcomnes/npm-run-all2/issues/117)) [`3df3708`](https://togithub.com/bcomnes/npm-run-all2/commit/3df37084ab1ae55f873fcbb449ad0d7df8bc328f) ### [`v6.0.6`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v606---2023-07-04) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.0.5...v6.0.6) ##### Merged - Update all esm only packages [`#114`](https://togithub.com/bcomnes/npm-run-all2/pull/114) - Upgrade: Bump c8 from 7.14.0 to 8.0.0 [`#111`](https://togithub.com/bcomnes/npm-run-all2/pull/111) - Delete .nycrc [`#109`](https://togithub.com/bcomnes/npm-run-all2/pull/109) - Update CodeQL workflow [`#110`](https://togithub.com/bcomnes/npm-run-all2/pull/110) ##### Commits - Lint fix and a few hand fixes [`2c81236`](https://togithub.com/bcomnes/npm-run-all2/commit/2c8123694b73084f37b68eb6719632024331d2e9) - Fix tests [`79e2c97`](https://togithub.com/bcomnes/npm-run-all2/commit/79e2c97c5b32c46d5cf64ce37b3b78cf4035498e) - Update p-queue and ansi-styles [`10b075c`](https://togithub.com/bcomnes/npm-run-all2/commit/10b075c849153822e9abc1447222d186a1cd6136) ### [`v6.0.5`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v605---2023-04-03) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.0.4...v6.0.5) ##### Merged - Upgrade: Bump bcomnes/npm-bump from 2.1.0 to 2.2.1 [`#104`](https://togithub.com/bcomnes/npm-run-all2/pull/104) - Upgrade: Bump minimatch from 6.2.0 to 7.0.0 [`#103`](https://togithub.com/bcomnes/npm-run-all2/pull/103) - Upgrade: Bump minimatch from 5.1.4 to 6.0.4 [`#102`](https://togithub.com/bcomnes/npm-run-all2/pull/102) - Upgrade: Bump fs-extra from 10.1.0 to 11.1.0 [`#98`](https://togithub.com/bcomnes/npm-run-all2/pull/98) ##### Commits - Merge pull request [#​105](https://togithub.com/bcomnes/npm-run-all2/issues/105) from bcomnes/dependabot/npm_and_yarn/minimatch-8.0.2 [`cbf78c8`](https://togithub.com/bcomnes/npm-run-all2/commit/cbf78c8155365db9ec06cb8054bc821e057d06e2) - Upgrade: Bump minimatch from 7.4.4 to 8.0.2 [`c90d02b`](https://togithub.com/bcomnes/npm-run-all2/commit/c90d02b02df6dd33cbab01caac44b9729e012bb9) - Merge pull request [#​101](https://togithub.com/bcomnes/npm-run-all2/issues/101) from bcomnes/dependabot/npm_and_yarn/rimraf-4.0.4 [`d0d46a2`](https://togithub.com/bcomnes/npm-run-all2/commit/d0d46a2b0aa87a3c0c79b78a013415e7902c8324) ### [`v6.0.4`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v604---2022-11-09) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.0.3...v6.0.4) ##### Merged - When running through npx, use the npm that should be next to it. [`#96`](https://togithub.com/bcomnes/npm-run-all2/pull/96) ### [`v6.0.3`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v603---2022-11-09) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.0.2...v6.0.3) ##### Merged - Upgrade: Bump jsdoc from 3.6.11 to 4.0.0 [`#95`](https://togithub.com/bcomnes/npm-run-all2/pull/95) - Upgrade: Bump bcomnes/npm-bump from 2.0.2 to 2.1.0 [`#92`](https://togithub.com/bcomnes/npm-run-all2/pull/92) - docs: update minimum supported Node version [`#90`](https://togithub.com/bcomnes/npm-run-all2/pull/90) ##### Commits - Merge pull request [#​94](https://togithub.com/bcomnes/npm-run-all2/issues/94) from MarmadileManteater/runjs-being-called-instead-of-npm-run [`da913f9`](https://togithub.com/bcomnes/npm-run-all2/commit/da913f9481543907457bd2298ad17192a4420874) - Use NPM_CLI_JS over npm_execpath [`0224167`](https://togithub.com/bcomnes/npm-run-all2/commit/022416740f0d9cf8eae2f2e4ca4de8d09a6b67d8) - Add a proper check for yarn [`bb41ef6`](https://togithub.com/bcomnes/npm-run-all2/commit/bb41ef6fd85a803a4a22e8382f67ea9e3e235b7d) ### [`v6.0.2`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v602---2022-08-16) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.0.1...v6.0.2) ##### Merged - Update package shell quote [`#89`](https://togithub.com/bcomnes/npm-run-all2/pull/89) ### [`v6.0.1`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v601---2022-06-14) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v6.0.0...v6.0.1) ##### Commits - Lower bound node engine to ^14.18.0 || >=16.0.0 [`fc2957f`](https://togithub.com/bcomnes/npm-run-all2/commit/fc2957f4814848b55bc29b0a0a1def8bfadda18b) ### [`v6.0.0`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v600---2022-06-11) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v5.0.2...v6.0.0) ##### Merged - Move support to node 16 and npm 8 [`#85`](https://togithub.com/bcomnes/npm-run-all2/pull/85) - Upgrade: Bump pidtree from 0.5.0 to 0.6.0 [`#84`](https://togithub.com/bcomnes/npm-run-all2/pull/84) - Upgrade: Bump mocha from 9.2.2 to 10.0.0 [`#83`](https://togithub.com/bcomnes/npm-run-all2/pull/83) - Upgrade: Bump github/codeql-action from 1 to 2 [`#82`](https://togithub.com/bcomnes/npm-run-all2/pull/82) - Upgrade: Bump fastify/github-action-merge-dependabot from 3.0.2 to 3.1 [`#78`](https://togithub.com/bcomnes/npm-run-all2/pull/78) - Upgrade: Bump codecov/codecov-action from 2 to 3 [`#77`](https://togithub.com/bcomnes/npm-run-all2/pull/77) - Upgrade: Bump actions/setup-node from 2 to 3 [`#75`](https://togithub.com/bcomnes/npm-run-all2/pull/75) - Upgrade: Bump actions/checkout from 2 to 3 [`#76`](https://togithub.com/bcomnes/npm-run-all2/pull/76) - Upgrade: Bump minimatch from 4.2.1 to 5.0.0 [`#74`](https://togithub.com/bcomnes/npm-run-all2/pull/74) - Upgrade: Bump minimatch from 3.1.1 to 4.1.1 [`#73`](https://togithub.com/bcomnes/npm-run-all2/pull/73) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.7.1 to 3.0.2 [`#72`](https://togithub.com/bcomnes/npm-run-all2/pull/72) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.7.0 to 2.7.1 [`#71`](https://togithub.com/bcomnes/npm-run-all2/pull/71) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.6.0 to 2.7.0 [`#70`](https://togithub.com/bcomnes/npm-run-all2/pull/70) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.5.0 to 2.6.0 [`#69`](https://togithub.com/bcomnes/npm-run-all2/pull/69) - Simplify npm scripts [`#64`](https://togithub.com/bcomnes/npm-run-all2/pull/64) - Update CI config [`#62`](https://togithub.com/bcomnes/npm-run-all2/pull/62) - Add CodeQL workflow [`#65`](https://togithub.com/bcomnes/npm-run-all2/pull/65) - Switch to c8 for coverage [`#66`](https://togithub.com/bcomnes/npm-run-all2/pull/66) - tests: switch to assert's strict mode [`#67`](https://togithub.com/bcomnes/npm-run-all2/pull/67) - Enforce LF in the repo. [`#61`](https://togithub.com/bcomnes/npm-run-all2/pull/61) - Upgrade: Bump actions/setup-node from 2.4.0 to 2.4.1 [`#59`](https://togithub.com/bcomnes/npm-run-all2/pull/59) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.4.0 to 2.5.0 [`#58`](https://togithub.com/bcomnes/npm-run-all2/pull/58) - Upgrade: Bump codecov/codecov-action from 2.0.2 to 2.1.0 [`#57`](https://togithub.com/bcomnes/npm-run-all2/pull/57) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.2.0 to 2.4.0 [`#54`](https://togithub.com/bcomnes/npm-run-all2/pull/54) - Upgrade: Bump actions/setup-node from 2.3.2 to 2.4.0 [`#53`](https://togithub.com/bcomnes/npm-run-all2/pull/53) - Upgrade: Bump actions/setup-node from 2.3.1 to 2.3.2 [`#52`](https://togithub.com/bcomnes/npm-run-all2/pull/52) - Upgrade: Bump actions/setup-node from 2.3.0 to 2.3.1 [`#51`](https://togithub.com/bcomnes/npm-run-all2/pull/51) - Upgrade: Bump codecov/codecov-action from 2.0.1 to 2.0.2 [`#50`](https://togithub.com/bcomnes/npm-run-all2/pull/50) - Upgrade: Bump actions/setup-node from 2.2.0 to 2.3.0 [`#49`](https://togithub.com/bcomnes/npm-run-all2/pull/49) - Upgrade: Bump codecov/codecov-action from 1.5.2 to 2.0.1 [`#48`](https://togithub.com/bcomnes/npm-run-all2/pull/48) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.1.1 to 2.2.0 [`#47`](https://togithub.com/bcomnes/npm-run-all2/pull/47) - Upgrade: Bump actions/setup-node from 2.1.5 to 2.2.0 [`#46`](https://togithub.com/bcomnes/npm-run-all2/pull/46) - Upgrade: Bump codecov/codecov-action from 1.5.0 to 1.5.2 [`#44`](https://togithub.com/bcomnes/npm-run-all2/pull/44) - Upgrade: Bump mocha from 8.4.0 to 9.0.0 [`#43`](https://togithub.com/bcomnes/npm-run-all2/pull/43) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.1.0 to 2.1.1 [`#42`](https://togithub.com/bcomnes/npm-run-all2/pull/42) - Upgrade: Bump fastify/github-action-merge-dependabot from 2.0.0 to 2.1.0 [`#41`](https://togithub.com/bcomnes/npm-run-all2/pull/41) - Upgrade: Bump gh-release from 5.0.2 to 6.0.0 [`#40`](https://togithub.com/bcomnes/npm-run-all2/pull/40) - Upgrade: Bump codecov/codecov-action from 1 to 1.5.0 [`#39`](https://togithub.com/bcomnes/npm-run-all2/pull/39) - Upgrade: Bump fs-extra from 9.1.0 to 10.0.0 [`#38`](https://togithub.com/bcomnes/npm-run-all2/pull/38) - Upgrade: Bump fastify/github-action-merge-dependabot from v1.2.1 to v2.0.0 [`#33`](https://togithub.com/bcomnes/npm-run-all2/pull/33) - Upgrade: Bump fastify/github-action-merge-dependabot [`#32`](https://togithub.com/bcomnes/npm-run-all2/pull/32) - Upgrade: Bump fastify/github-action-merge-dependabot from v1.1.1 to v1.2.0 [`#31`](https://togithub.com/bcomnes/npm-run-all2/pull/31) - Upgrade: Bump actions/setup-node from v2.1.4 to v2.1.5 [`#30`](https://togithub.com/bcomnes/npm-run-all2/pull/30) - Upgrade: Bump gh-release from 4.0.4 to 5.0.0 [`#29`](https://togithub.com/bcomnes/npm-run-all2/pull/29) - Upgrade: Bump actions/setup-node from v2.1.3 to v2.1.4 [`#28`](https://togithub.com/bcomnes/npm-run-all2/pull/28) - Upgrade: Bump actions/setup-node from v2.1.2 to v2.1.3 [`#27`](https://togithub.com/bcomnes/npm-run-all2/pull/27) ##### Fixed - Disable override tests on > npm 7 [`#79`](https://togithub.com/bcomnes/npm-run-all2/issues/79) ##### Commits - **Breaking change:** Bump engines to node 16 and npm 8 [`7d19dd4`](https://togithub.com/bcomnes/npm-run-all2/commit/7d19dd47ee70286878f380934d18823310355471) - Add auto merge [`e598066`](https://togithub.com/bcomnes/npm-run-all2/commit/e598066fea7478e0fce14b4f09d64fdf37b0420f) - Update test.yml [`96260d6`](https://togithub.com/bcomnes/npm-run-all2/commit/96260d6c088ce0aa2bd367ff0736d653f5b0b1f1) ### [`v5.0.2`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v502---2020-12-08) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v5.0.1...v5.0.2) ##### Merged - Upgrade: Bump ansi-styles from 4.3.0 to 5.0.0 [`#26`](https://togithub.com/bcomnes/npm-run-all2/pull/26) - Upgrade: Bump actions/checkout from v2.3.3 to v2.3.4 [`#25`](https://togithub.com/bcomnes/npm-run-all2/pull/25) ### [`v5.0.1`](https://togithub.com/bcomnes/npm-run-all2/blob/HEAD/CHANGELOG.md#v501---2020-10-24) [Compare Source](https://togithub.com/bcomnes/npm-run-all2/compare/v5.0.0...v5.0.1) ##### Commits - Fix repo field to a valid format [`00b88f8`](https://togithub.com/bcomnes/npm-run-all2/commit/00b88f8a399d45cb104a33357cf56015ab92a1c0) - Remove duplicate repo field [`a2d11ff`](https://togithub.com/bcomnes/npm-run-all2/commit/a2d11ff3f234812ba660be32f3a9a0aa45a510f6) - Update FUNDING.yml [`648a541`](https://togithub.com/bcomnes/npm-run-all2/commit/648a5418725b4330571e08e9e1300756c98edd76) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/jaegertracing/jaeger-ui). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjQzMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19--> Signed-off-by: Mend Renovate <[email protected]>
Fix #43
Fix an issue with the search page that shows up when there are many spans (cumulatively) in the search results. Issue at hand is the
mapStateToProps
function calls.toJS()
on some of the immutableJS state values, transforms the resultant values, then passes the transformed values to reselect. The.toJS()
invocation prevents the calculations from being memoized by reselect because it always results in new objects or arrays.The change is to wrap the
.toJS()
call and subsequent transformation in a function, the result of which is cached based on the state value. The caching resolves the issue. Only the last result needs to be cached because these are top-level state values (vs transforming items in an array) and therefore a state value will never be revisited.