consider reintroduce perf-prof support for macOS
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 28/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- javascript, node.js, rust
- Lĩnh vực
- devtools, performance
Hướng nghiên cứu
Start by reviewing the V8 change that removed perf-prof support and the referenced Node.js v8-perf-maps patch, then compare how macOS jitdump support works in JavaScriptCore and SpiderMonkey. Done means establishing whether Node.js can reintroduce macOS perf-prof support so mixed Rust and JavaScript profiles can be analyzed with samply.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I'm a maintainer of Rspack, and one of our major challenges is identifying performance bottlenecks in user projects during the build process.
Rspack extensively utilizes node-api, resulting in frequent Rust-JavaScript communication (we support JS loaders and plugins via node-api). Currently, we use cpu-profile to debug JavaScript performance issues and samply for Rust performance issues. However, bottlenecks often span both Rust and JavaScript, making it difficult to analyze using two separate profiling tools.
I recently discovered that samply supports jitdump, which can remap native frames to JavaScript frames, allowing us to analyze performance within a single tool. Unfortunately, Node.js only supports perf-prof on Linux. While debugging on Linux is possible, it's not ideal since most of our internal developers use macOS, and it's impractical to ask users to install Linux solely for generating these profiles.
Upon investigation, I found that perf-prof support was removed in V8 to fix fuzzer tests (https://chromium-review.googlesource.com/c/v8/v8/+/1993969). However, Node.js can support perf-prof with a minor patch. Although the patch isn't perfect, it demonstrates that macOS support is still feasible.
Both JavaScriptCore and SpiderMonkey support jitdump on macOS. I'm wondering if Node.js could reintroduce perf-prof support for macOS, as it would be incredibly useful for profiling JavaScript compiler tools that heavily rely on node-api, such as Rspack, Rolldown, Next.js, SWC and others.
- Ngôn ngữ chính
- Không có dữ liệu ngôn ngữ
- Star
- 550
- Fork
- 69
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của nodejs/diagnostics
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 65/100
nodejs/diagnostics#648 · 3 bình luận ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 20/100
nodejs/diagnostics#690 · 1 reaction ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 20/100
nodejs/diagnostics#689 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 25/100
nodejs/diagnostics#688 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
nodejs/diagnostics#687 ·
Tất cả issue của nodejs/diagnostics
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
pastelsky/bundlephobia#1122 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
anthropics/skills#1811 · 1 bình luận ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
CachyOS/distribution#587 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
datalayer/mcp-compose#42 ·
-
[Chore] Keep one viget-block-generator skill and replicate it, instead of four tracked copies Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100