improve performance around category highlighting (#849)

* remove function call and add comment

* separate crossfilter size calc into memoized function
This commit is contained in:
Severiano Badajoz
2019-07-15 16:00:23 -07:00
committed by GitHub
parent e199b14259
commit 3d6bb88556
2 changed files with 17 additions and 4 deletions
+15 -2
View File
@@ -52,16 +52,27 @@ class Graph extends React.Component {
return colors;
});
computePointSizesFromCrossfilter = memoize((len, crossfilter) => {
const sizes = new Float32Array(len);
crossfilter.fillByIsSelected(sizes, 4, 0.2);
return sizes;
});
computePointSizes = memoize(
(len, crossfilter, metadataField, categoryField) => {
/*
compute webgl dot size for each point
*/
const sizes = new Float32Array(len);
crossfilter.fillByIsSelected(sizes, 4, 0.2);
const selectionSizes = this.computePointSizesFromCrossfilter(
len,
crossfilter
);
let sizes;
if (metadataField && categoryField) {
sizes = selectionSizes.slice();
const valuesArr = crossfilter.data.col(metadataField).asArray();
for (let i = 0; i < len; i += 1) {
@@ -69,6 +80,8 @@ class Graph extends React.Component {
sizes[i] = 10;
}
}
} else {
sizes = selectionSizes;
}
return sizes;
}
+2 -2
View File
@@ -19,12 +19,12 @@ const CentroidLabel = (state = initialState, action, sharedNextState) => {
metadataField,
categoryIndex,
categoryField,
centroidXY: calcCentroid(
centroidXY: null /* calcCentroid( This function call is computationally heavy and also leading to large GC. Before reimplementation, look into optimization and memoization
world,
metadataField,
categoryField,
layoutChoice.currentDimNames
)
) */
};
case "category value mouse hover end":