tracking for large frame drops
Summary: `largeFrameDrops` are added to the usage tracking. Similar to our other apps, we are considering a drop of 4 or more frames as a large frame drop. While a single frame drop might not be relevant to the user, large frame drops are a more relevant number to optimize for. Reviewed By: passy Differential Revision: D9358795 fbshipit-source-id: d9354695c816ba6c40676df6f3c6f3f070e28269
This commit is contained in:
committed by
Facebook Github Bot
parent
6a746d744e
commit
11ba553ab8
@@ -12,6 +12,7 @@ import type Logger from '../fb-stubs/Logger.js';
|
||||
|
||||
export default (store: Store, logger: Logger) => {
|
||||
let droppedFrames: number = 0;
|
||||
let largeFrameDrops: number = 0;
|
||||
function droppedFrameDetection(
|
||||
past: DOMHighResTimeStamp,
|
||||
isWindowFocused: () => boolean,
|
||||
@@ -19,8 +20,12 @@ export default (store: Store, logger: Logger) => {
|
||||
const now = performance.now();
|
||||
requestAnimationFrame(() => droppedFrameDetection(now, isWindowFocused));
|
||||
const dropped = Math.round((now - past) / (1000 / 60) - 1);
|
||||
if (dropped > 0 && isWindowFocused()) {
|
||||
droppedFrames += dropped;
|
||||
if (!isWindowFocused() || dropped < 1) {
|
||||
return;
|
||||
}
|
||||
droppedFrames += dropped;
|
||||
if (dropped > 3) {
|
||||
largeFrameDrops++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,12 +47,14 @@ export default (store: Store, logger: Logger) => {
|
||||
}
|
||||
const info = {
|
||||
droppedFrames,
|
||||
largeFrameDrops,
|
||||
os: selectedDevice.os,
|
||||
device: selectedDevice.title,
|
||||
plugin: selectedPlugin,
|
||||
};
|
||||
// reset dropped frames counter
|
||||
droppedFrames = 0;
|
||||
largeFrameDrops = 0;
|
||||
|
||||
if (selectedApp) {
|
||||
const client = clients.find((c: Client) => c.id === selectedApp);
|
||||
|
||||
Reference in New Issue
Block a user