getsentry / getsentry/sentry-javascript

[Feature] Profiling support in Bun

Open
#19,726 1 comment 13 reactions 0 assignees View on GitHub
Bun Feature Profiles
Dominant language
TypeScript
Stars
8.7k
Forks
1.8k
Avg merge
1d 17h
Merged PRs (30d)
515

Description

### Description

Bun is not built on V8 but on Safari's JavaScriptCore (JSC), and we would need an entirely different implementation of the profiler in order to be able to profile the bun runtime.

Upvoting on this issue helps us prioritize this (see statement below in "Priority").

Also mentioned in this issue:
- https://github.com/getsentry/sentry-javascript/issues/13577

### Reasons against implementing this

- Bun has a `console.profile` which might do something similar (at least in dev): https://bun.com/reference/globals/Console/profile
- Production profiling in Bun still has issues, for example leaking memory very fast: https://github.com/oven-sh/bun/issues/24858

### Resources

- https://bun.com/reference/bun/jsc/profile
- https://bun.com/docs/project/benchmarking

**Related APIs**
- Node `inspector.Profile` in Bun (`inspector` not implemented in Bun): https://bun.com/reference/node/inspector/Profiler/Profile
- Node GC Profiler (implemented in Bun, but different profiler): https://bun.sh/reference/node/v8/GCProfiler

### Priority

React with 👍 to help prioritize this feature. Please use comments to provide useful context, avoiding `+1` or `me too`, to help us triage it.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.