Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Hermes Sampling Profiler API for JS Samplings #48315

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

hoxyq
Copy link
Contributor

@hoxyq hoxyq commented Dec 17, 2024

Summary:

Changelog: [Internal]

Use newly added API to Hermes.

In terms of Trace Events, we are going to emit:

  • An event for Process metadata, which will be named "Hermes"
  • An event for Thread metadata, on which Hermes runs
  • Complete Trace Event for the same Thread, which is required track to appear in the Timeline UI. I believe duration field is the key for this
  • Trace Event for Profile
  • Trace Event for ProfileChunk, which contains information about nodes and the callstack tree representation

Important: current implementation emits single ProfileChunk event. I didn't notice any issues in terms of JSON bandwidth while recording 1 minute long session in CPU-heavy application. We should re-evaluate this decision in the future and split Profiles into multiple chunks.

Differential Revision: D67353586

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner labels Dec 17, 2024
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D67353586

hoxyq added a commit to hoxyq/react-native that referenced this pull request Dec 18, 2024
Summary:

# Changelog: [Internal]

Use newly added API to Hermes.

In terms of Trace Events, we are going to emit:
- An event for Process metadata, which will be named "Hermes"
- An event for Thread metadata, on which Hermes runs
- Complete Trace Event for the same Thread, which is required track to appear in the Timeline UI. I believe duration field is the key for this
- Trace Event for Profile
- Trace Event for ProfileChunk, which contains information about nodes and the callstack tree representation

> Important: current implementation emits single ProfileChunk event. I didn't notice any issues in terms of JSON bandwidth while recording 1 minute long session in CPU-heavy application. We should re-evaluate this decision in the future and split Profiles into multiple chunks.

Differential Revision: D67353586
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D67353586

Summary:

# Changelog: [Internal]

Use newly added API to Hermes.

In terms of Trace Events, we are going to emit:
- An event for Process metadata, which will be named "Hermes"
- An event for Thread metadata, on which Hermes runs
- Complete Trace Event for the same Thread, which is required track to appear in the Timeline UI. I believe duration field is the key for this
- Trace Event for Profile
- Trace Event for ProfileChunk, which contains information about nodes and the callstack tree representation

> Important: current implementation emits single ProfileChunk event. I didn't notice any issues in terms of JSON bandwidth while recording 1 minute long session in CPU-heavy application. We should re-evaluate this decision in the future and split Profiles into multiple chunks.

Differential Revision: D67353586
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D67353586

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported p: Facebook Partner: Facebook Partner
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants