Reduce in metrics reducer
Summary: Actually reduce in the reducer step instead of using mutable state. Reviewed By: jknoxville Differential Revision: D15603095 fbshipit-source-id: f603ca548bb760db5423a4c1871d94284ece9521
This commit is contained in:
committed by
Facebook Github Bot
parent
befaecbf7c
commit
023135ad74
@@ -130,26 +130,28 @@ export default class extends FlipperPlugin<PluginState, *, PersistedState> {
|
||||
persistedState: PersistedState,
|
||||
): Promise<MetricType> => {
|
||||
const {events, imagesMap} = persistedState;
|
||||
let wastedBytes = 0;
|
||||
events.forEach(event => {
|
||||
let wastedBytes = events.reduce((acc, event) => {
|
||||
const {viewport, imageIds} = event;
|
||||
if (!viewport) {
|
||||
return;
|
||||
return acc;
|
||||
}
|
||||
imageIds.forEach(imageID => {
|
||||
const imageData: ImageData = imagesMap[imageID];
|
||||
if (!imageData) {
|
||||
return;
|
||||
}
|
||||
const imageWidth: number = imageData.width;
|
||||
const imageHeight: number = imageData.height;
|
||||
const viewPortWidth: number = viewport.width;
|
||||
const viewPortHeight: number = viewport.height;
|
||||
const viewPortArea = viewPortWidth * viewPortHeight;
|
||||
const imageArea = imageWidth * imageHeight;
|
||||
wastedBytes += Math.max(0, imageArea - viewPortArea);
|
||||
});
|
||||
});
|
||||
return (
|
||||
acc +
|
||||
imageIds.reduce((innerAcc, imageID) => {
|
||||
const imageData: ImageData = imagesMap[imageID];
|
||||
if (!imageData) {
|
||||
return innerAcc;
|
||||
}
|
||||
const imageWidth: number = imageData.width;
|
||||
const imageHeight: number = imageData.height;
|
||||
const viewPortWidth: number = viewport.width;
|
||||
const viewPortHeight: number = viewport.height;
|
||||
const viewPortArea = viewPortWidth * viewPortHeight;
|
||||
const imageArea = imageWidth * imageHeight;
|
||||
return innerAcc + Math.max(0, imageArea - viewPortArea);
|
||||
}, acc)
|
||||
);
|
||||
}, 0);
|
||||
return Promise.resolve({WASTED_BYTES: wastedBytes});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user