react-native/Libraries/Utilities
Spencer Ahrens f72d9dd08b Add option to track when we're showing blankness during fast scrolling
Summary:
If tracking is enabled and the sampling check passes on a scroll or layout event,
we compare the scroll offset to the layout of the rendered items. If the items don't cover
the visible area of the list, we fire an `onFillRateExceeded` call with relevant stats for
logging the event through an analytics pipeline.

The measurement methodology is a little jank because everything is async, but it seems directionally
useful for getting ballpark numbers, catching regressions, and tracking improvements.

Benchmark testing shows a ~2014 MotoX starts hitting the fill rate limit at about 2500 px / sec,
which is pretty fast scrolling.

This also reworks our frame rate stuff so we can use a shared `SceneTracking` thing and track blankness
globally.

Reviewed By: bvaughn

Differential Revision: D4806867

fbshipit-source-id: 119bf177463c8c3aa51fa13d1a9d03b1a96042aa
2017-04-07 01:00:39 -07:00
..
__mocks__ Reorganize core JS files 2016-10-11 10:14:28 -07:00
__tests__ Add option to track when we're showing blankness during fast scrolling 2017-04-07 01:00:39 -07:00
differ Fix license headers 2017-03-08 00:52:17 -08:00
BackAndroid.js Move BackAndroid -> BackHandler, add Apple TV support for back nav 2017-03-06 21:51:40 -08:00
BackHandler.android.js Move BackAndroid -> BackHandler, add Apple TV support for back nav 2017-03-06 21:51:40 -08:00
BackHandler.ios.js Move BackAndroid -> BackHandler, add Apple TV support for back nav 2017-03-06 21:51:40 -08:00
DeviceInfo.js require `fbjs/lib/invariant`, not `invariant` 2017-03-21 05:37:03 -07:00
Dimensions.js Introduce `DeviceInfo` as a new native module 2017-03-17 17:01:57 -07:00
HMRClient.js Auto-fix lint errors 2016-08-09 06:43:46 -07:00
HMRLoadingView.android.js Show a Toast for HMR 2016-02-27 15:58:35 -08:00
HMRLoadingView.ios.js Show a Toast for HMR 2016-02-27 15:58:35 -08:00
HeapCapture.js upload JSC heap capture to bundle server 2016-08-02 08:13:57 -07:00
MatrixMath.js Fix license headers 2017-03-08 00:52:17 -08:00
PerformanceLogger.js Add flow typing to PerformanceLogger 2017-03-22 05:38:05 -07:00
PixelRatio.js PixelRatio.pixel() 2016-01-15 05:15:31 -08:00
Platform.android.js Merge AndroidConstants and IOSConstants into PlatformConstants 2017-02-22 15:01:11 -08:00
Platform.ios.js Merge AndroidConstants and IOSConstants into PlatformConstants 2017-02-22 15:01:11 -08:00
RCTLog.js added RCTLog.logToConsole() to force log regardless of debugger connection 2017-03-07 19:45:49 -08:00
SceneTracker.js Add option to track when we're showing blankness during fast scrolling 2017-04-07 01:00:39 -07:00
binaryToBase64.js XHR: support typed arrays for request payloads 2017-01-20 18:43:27 -08:00
buildStyleInterpolator.js Fix license headers 2017-03-08 00:52:17 -08:00
clamp.js RN: Cleanup OSS JS & Flow Declarations 2016-11-20 17:58:29 -08:00
createStrictShapeTypeChecker.js Patch up for future React Sync 2017-02-08 14:50:43 -08:00
deepFreezeAndThrowOnMutationInDev.js Android: fix JSC crash in dev 2017-01-11 08:58:30 -08:00
defineLazyObjectProperty.js Break infinite loop that happens only in debug environments 2017-01-17 16:58:46 -08:00
deprecatedPropType.js Patch up for future React Sync 2017-02-08 14:50:43 -08:00
dismissKeyboard.js Fix license headers 2017-03-08 00:52:17 -08:00
groupByEveryN.js Flowify Library/Utilities/ 2015-03-23 16:47:26 -08:00
infoLog.js Move infoLog to OSS 2016-05-17 12:43:40 -07:00
logError.js Flowify Library/Utilities/ 2015-03-23 16:47:26 -08:00
mapWithSeparator.js Optimize and flowify mapWithSeparator 2016-05-26 12:28:55 -07:00
mergeFast.js Fix typo 2015-08-06 20:22:24 -08:00
mergeIntoFast.js Bugfix - Typos 2015-12-15 09:09:32 -08:00
stringifySafe.js [ReactNative] improve console logging a little bit 2015-05-04 18:57:03 -08:00
throwOnWrongReactAPI.js Show better error message when accessing React APIs on React Native 2016-06-14 06:28:26 -07:00
truncate.js Auto-fix lint errors 2016-08-09 06:43:46 -07:00
utf8.js Add support for missing XHR response types 2016-04-11 05:54:28 -07:00