Emilis Baliukonis
232517a574
Implement nativePerformanceNow to improve Profiler API results ( #27885 )
...
Summary:
When experimenting with React Profiler API (https://reactjs.org/docs/profiler.html ), I noticed that durations are integers without a debugger, but they are doubles with higher precision when debugger is attached. After digging into React Profiler code, I found out that it's using `performance.now()` to accumulate execution times of individual units of work. Since this method does not exist in React Native, it falls back to Javascript `Date`, leading to imprecise results.
This PR introduces `global.nativePerformanceNow` function which returns precise native time, and a very basic `performance` polyfill with `now` function.
This will greatly improve React Profiler API results, which is essential for profiling and benchmark tools.
Solves https://github.com/facebook/react-native/issues/27274
## Changelog
[General] [Added] - Implement `nativePerformanceNow` and `performance.now()`
Pull Request resolved: https://github.com/facebook/react-native/pull/27885
Test Plan:
```
const initialTime = global.performance.now();
setTimeout(() => {
const newTime = global.performance.now();
console.warn('duration', newTime - initialTime);
}, 1000);
```
### Android + Hermes

### Android + JSC

### iOS

Reviewed By: ejanzer
Differential Revision: D19888289
Pulled By: rickhanlonii
fbshipit-source-id: ab8152382da9aee9b4b3c76f096e45d40f55da6c
2020-03-31 10:23:51 -07:00
Christoph Nakazawa
4148976a83
Use invariant instead of fbjs/lib/invariant
...
Summary: This is one more step to remove `fbjs` from `react-native-github`. This changes both the internal and external code to use `invariant` from zertosh instead of the copy in fbjs.
Reviewed By: yungsters
Differential Revision: D13195941
fbshipit-source-id: 73564ca1715110e7da9c7ef56dc57374d61377e0
2018-12-03 00:07:02 -08:00
Héctor Ramos
1151c096da
Update copyright headers to yearless format
...
Summary: This change drops the year from the copyright headers and the LICENSE file.
Reviewed By: yungsters
Differential Revision: D9727774
fbshipit-source-id: df4fc1e4390733fe774b1a160dd41b4a3d83302a
2018-09-11 15:33:07 -07:00
Rubén Norte
d5e9e55fa3
Remove @providesModule from all modules
...
Summary:
This PR removes the need for having the `providesModule` tags in all the modules in the repository.
It configures Flow, Jest and Metro to get the module names from the filenames (`Libraries/Animated/src/nodes/AnimatedInterpolation.js` => `AnimatedInterpolation`)
* Checked the Flow configuration by running flow on the project root (no errors):
```
yarn flow
```
* Checked the Jest configuration by running the tests with a clean cache:
```
yarn jest --clearCache && yarn test
```
* Checked the Metro configuration by starting the server with a clean cache and requesting some bundles:
```
yarn run start --reset-cache
curl 'localhost:8081/IntegrationTests/AccessibilityManagerTest.bundle?platform=android'
curl 'localhost:8081/Libraries/Alert/Alert.bundle?platform=ios'
```
[INTERNAL] [FEATURE] [All] - Removed providesModule from all modules and configured tools.
Closes https://github.com/facebook/react-native/pull/18995
Reviewed By: mjesun
Differential Revision: D7729509
Pulled By: rubennorte
fbshipit-source-id: 892f760a05ce1fddb088ff0cd2e97e521fb8e825
2018-04-25 07:37:10 -07:00
Tim Yung
3e141cb6c9
RN: Delete Systrace.swizzleJSON
...
Reviewed By: TheSavior
Differential Revision: D7207460
fbshipit-source-id: 14b1174d6a5c75e1acba7272376d1c462bc13cb6
2018-03-08 23:43:26 -08:00
Tim Yung
a8c4b630fc
RN: Delete Systrace for RelayClassic
...
Reviewed By: TheSavior
Differential Revision: D7207462
fbshipit-source-id: 6dd5c5fd22c0a5a7d77331d6adf7b362c3d3e037
2018-03-08 23:43:26 -08:00
Tim Yung
118521c20b
RN: Prettify Systrace
...
Reviewed By: TheSavior
Differential Revision: D7207468
fbshipit-source-id: 05ae6e003ae3e55bc2d3a905f41c28f7041dd7f0
2018-03-08 23:43:26 -08:00
Tim Yung
973ef9728c
RN: Remove React Stack Systrace Logic
...
Reviewed By: sophiebits
Differential Revision: D7027263
fbshipit-source-id: f4eb3fab402eda337f464e4ebb0771202a9b93f2
2018-02-19 22:32:36 -08:00
Sophie Alpert
1490ab12ef
Update license headers for MIT license
...
Summary:
Includes React Native and its dependencies Fresco, Metro, and Yoga. Excludes samples/examples/docs.
find: ^(?:( *)|( *(?:[\*~#]|::))( )? *)?Copyright (?:\(c\) )?(\d{4})\b.+Facebook[\s\S]+?BSD[\s\S]+?(?:this source tree|the same directory)\.$
replace: $1$2$3Copyright (c) $4-present, Facebook, Inc.\n$2\n$1$2$3This source code is licensed under the MIT license found in the\n$1$2$3LICENSE file in the root directory of this source tree.
Reviewed By: TheSavior, yungsters
Differential Revision: D7007050
fbshipit-source-id: 37dd6bf0ffec0923bfc99c260bb330683f35553e
2018-02-16 18:31:53 -08:00
Alexey Lang
a9032a20ad
Log query name for fetchRelayQuery
...
Reviewed By: yisun
Differential Revision: D6692869
fbshipit-source-id: 5484070be9995c5294197b0c2766690fd7accefa
2018-01-11 04:47:57 -08:00
Alexey Lang
dfebcb70a5
Don't set global.performance to undefined if it was initialized already
...
Reviewed By: gaearon
Differential Revision: D6448731
fbshipit-source-id: 8c8c6ff393e452c863f54c83c2e4394fd535dfc5
2017-12-01 02:46:18 -08:00
David Detlefs
05e862d48d
Add Systrace-based telemetry to Hermes GC.
...
Reviewed By: amnn
Differential Revision: D6393879
fbshipit-source-id: d35a4647d000356dc99bce3187acc50d3a69ddeb
2017-11-23 15:15:54 -08:00
Ashok Menon
52e3ae9063
Unify Systrace native hook argument passing.
...
Reviewed By: javache
Differential Revision: D6316024
fbshipit-source-id: c1b315fac2c3cf8558d0c9eb0eb2c7d3efe5c64f
2017-11-16 08:01:06 -08:00
Alexey Lang
f11f00197d
Gate more code with if (__DEV__) { }
...
Reviewed By: amnn
Differential Revision: D5621165
fbshipit-source-id: ee8b3df523858323a3ce4484ab56fcae0da3d633
2017-08-14 07:19:00 -07:00
Alexey Lang
3a031cc93a
Bring back React Stack support
...
Reviewed By: javache
Differential Revision: D5547208
fbshipit-source-id: 25cef6aa27fc4f17b26e1088256819ea235f79cf
2017-08-10 04:17:27 -07:00
Dan Abramov
32a0ee0975
Implement Systrace integration for Fiber
...
Reviewed By: bvaughn
Differential Revision: D5210738
fbshipit-source-id: db7df5ca7a1b4944f86719361d22ec3cc2ce8f22
2017-06-08 14:31:52 -07:00
Alexey Lang
ffbb2a0ec1
Clean up unused metrics
...
Reviewed By: AaaChiuuu
Differential Revision: D5020126
fbshipit-source-id: decaa9dd4b2ba5c25eed24a29836a3e7bdba0233
2017-05-09 13:30:26 -07:00
Brian Vaughn
ef0bd5c71d
Sync React 16 from alpha 6 to 12
...
Reviewed By: spicyj
Differential Revision: D4926070
fbshipit-source-id: c23c79ccd53eb594447d9b47fe3ac6e82499bd42
2017-05-03 17:16:48 -07:00
Brian Vaughn
212d31e322
Updated Systrace and RCTRenderingPerf to sync w/ React changes
...
Summary:
A temporary React Native compatibility fix was added to React in commit [bba0d99](https://github.com/facebook/react/commit/bba0d992d8f4ecf9cf6677817a1218e7f48a8a77 ) and subsequently removed in commit [e612826](https://github.com/facebook/react/commit/e612826650ff68e73bff4d71db01fea8147ee1fd ). I noticed this while testing the React Native fiber renderer and attempting to use `Systrace`.
This commit updates React Native to no longer rely on the deprecated method and module.
PS I'm not sure if I should also update `ReactDebugTool` with this commit or wait for a subsequent sync script to update it. I haven't committed to this repo before. Please advise. 😄
Closes https://github.com/facebook/react-native/pull/11970
Differential Revision: D4446219
Pulled By: bvaughn
fbshipit-source-id: f286b8a4d00cdcbfbb49f52b9f1db5231d453f4c
2017-01-22 09:58:32 -08:00
Jeff Morrison
d926aecd77
fbsource
...
Reviewed By: samwgoldman
Differential Revision: D4314897
fbshipit-source-id: fbe11da4c63bf34d010220d74177cb3ca4cbee6d
2016-12-13 18:58:34 -08:00
David Aurelio
3683beb88a
RN: Update React (2/2)
...
Reviewed By: kentaromiura
Differential Revision: D4026114
fbshipit-source-id: 67808af91454d95941fea01eef58a4d9086f46e1
2016-11-04 05:43:44 -07:00
Pieter De Baets
292cc82d0e
Reorganize core JS files
...
Reviewed By: lexs
Differential Revision: D3987463
fbshipit-source-id: fa8f1d1bea7ed699120b9705ddc1c83767fcf8e4
2016-10-11 10:14:28 -07:00