FR: Output Folded Stacks Format
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
- #669 của @mhansen — đã đóng, không merge
Đá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
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- go
- Lĩnh vực
- performance
Hướng nghiên cứu
Bắt đầu bằng cách kiểm tra các đường dẫn output hiện có của pprof cho -callgrind và -dot, cũng như cách chúng chọn một giá trị profile để làm trọng số cho đồ thị. So sánh output được đề xuất với difffolded.pl và flamegraph.pl của Brendan Gregg, và với định dạng folded của pprofutils của Felixge. Để hoàn thành, cần quyết định định dạng và hành vi của tùy chọn, bao gồm việc xuất một giá trị hay nhiều cột, cũng như cách xử lý labels và dữ liệu profile khác.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I think if we built an exporter to Brendan Gregg's folded stacks format, we could:
- Enable people to do differential flamegraphs using difffolded.pl and flamegraph.pl, perhaps addressing the user need in #483
- Allow post-processing the profiles using text tools like grep & sed
- Hook into some more profile analysis tools: see profilerpedia, folded stacks is a very well-connected format.
I'm picturing an option like -callgrind and -dot, perhaps -folded.
The trouble might be that folded stacks format only accepts one output number per stack, but pprof can have multiple numbers per stack. So we'd probably have to choose the number to output with a flag, if it was ambiguous. But perhaps parts of pprof already handle this? e.g. the -dot output probably chooses an event to use as the weight of the graph size?
Prior art in this space: @felixge's pprofutils folded: https://github.com/felixge/pprofutils#folded. Felix has an extension to the folded stacks format to have numbers with multiple columns. I think that's a neat idea for representing pprof and allows roundtripping back to pprof format. It would be nice if this extension caught on, but I wonder if it might limit the interoperability with other folded stacks tools.
Another idea might be to output only one number column per-file (e.g. pprof -folded=cpu-cycles and pprof -folded=instructions), and then to roundtrip, we could output multiple files, convert both of them back to pprof, then concatenate the files with pprof -proto <profile1> <profile2>.
There are plenty of other challenges with roundtripping too (labels, filenames, mappings...) but perhaps just solving part of the problem would still be useful and enable more analyses. Anyway, I mostly wanted to open a discussion about this. Thoughts?
- Ngôn ngữ chính
- Go
- Star
- 9.3k
- Fork
- 687
- Merge trung bình
- 2 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 9
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc 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 google/pprof
-
profile: FilterSamplesByName allocates a temporary Location slice per sample unnecessarilyCó thể đã có người làm @kyyril đã nhận 7 ngày trước. Đang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
google/pprof#1029 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 74/100
google/pprof#1020 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
pprof cannot locate source code for the list command in common Go setupsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
google/pprof#1009 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Label with zero int64 value and no unit get dropped during decodingCó thể đã có người làm @ms-hujia đã nhận 138 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
google/pprof#1002 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
router-for-me/CLIProxyAPI#7209 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Azure/azure-storage-azcopy#3674 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
date_time, url_encode, html_escape, to_unix_time, contains_all and contains_any panic when called without argumentsCó thể đã có người làm @antcybersec đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
projectdiscovery/dsl#372 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
blocked-needs-validation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
projectcapsule/capsule#2265 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Remove "Model catalog refresh unavailable" warning from OpenRouter agent runsCó thể đã có người làm @superplanehq-integration đã nhận hôm nay. Đang mởsuperplane
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
superplanehq/superplane#9164 ·
Maintainer thường phản hồi trong vòng 1 ngày