Skip to content

Conversation

mganandraj
Copy link

@mganandraj mganandraj commented Aug 26, 2019

Please select one of the following

  • I am removing an existing difference between facebook/react-native and microsoft/react-native 👍
  • I am cherry-picking a change from Facebook's react-native into microsoft/react-native 👍
  • I am making a fix / change for the macOS implementation of react-native
  • I am making a change required for Microsoft usage of react-native

Description of changes

Systrace is a tracing framework used by Facebook. The implementation of the tracing framework (which they call fbsystrace) is not available in open source. But, all the systrace markers are present in the react native code. In the past we had used these markers in various ways to generate performance tracing and telemetry. The tracing statements gets enabled using a conditional compilation flag "WITH_FBSYSTRACE". The current plubming has a number of deficiencies,

  1. It breaks c++ odr rule, which requires all the components which includes the react-native headers to have set the WITH_FBSYSTRACE flag, or risk random crashes.
  2. It is very windows & chakra specific.
  3. SystraceSection is very badly patched so that it is hard to maintain, if not divergent from the FB code, making it hard to reconcile new changes upstream.

Our new approach is supposed to fix all these. These will be another PR in the RNW repo with the new plumbing.

Focus areas to test

Only the tracing.

Microsoft Reviewers: Open in CodeFlow

@mganandraj mganandraj requested review from Khalef1, acoates-ms, tudorms and a team August 26, 2019 18:04
@pull-bot
Copy link

Messages
📖 📋 Missing Summary - Can you add a Summary? To do so, add a "## Summary" section to your PR description. This is a good place to explain the motivation for making this change.
📖 📋 Missing Test Plan - Can you add a Test Plan? To do so, add a "## Test Plan" section to your PR description. A Test Plan lets us know how these changes were tested.
📖

📋 Missing Changelog - Can you add a Changelog? To do so, add a "## Changelog" section to your PR description. A changelog entry has the following format: [CATEGORY] [TYPE] - Message.

Generated by 🚫 dangerJS against a52181e

Copy link
Member

@tudorms tudorms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@mganandraj mganandraj merged commit b769136 into microsoft:master Aug 28, 2019
@mganandraj mganandraj deleted the systrace branch August 28, 2019 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants