Comments (2)
Nice, thanks @javierhonduco. Just gave it another try after #74. I'm no longer seeing the previous occasional mismatch frame count errors
RUST_LOG=debug RUST_BACKTRACE=1 rbperf record -d 10 --pid 100743 syscall enter_getpid
[2023-02-28T13:05:58Z DEBUG rbperf::rbperf] verbose_bpf_logging set to false
[2023-02-28T13:05:58Z DEBUG rbperf::rbperf] use_ringbuf set to false
[2023-02-28T13:05:58Z DEBUG rbperf::rbperf] open prog: walk_ruby_stack has 10873 intructions
[2023-02-28T13:05:58Z DEBUG rbperf::rbperf] open prog: on_event has 217 intructions
[2023-02-28T13:05:58Z DEBUG rbperf::binary] Checking symbol ruby_version in binary /proc/100743/exe
[2023-02-28T13:05:58Z DEBUG rbperf::process] Binary "/proc/100743/exe"
[2023-02-28T13:05:58Z DEBUG rbperf::binary] Checking symbol ruby_current_vm in binary /proc/100743/exe
pid: 100743
statically linked
ruby main thread address: 0x5572c8a56bd0
process base address: 0x5572c8425000
ruby version: "3.2.1"
[2023-02-28T13:05:58Z INFO rbperf::rbperf] Adding config for version starting with RubyVersion { major_version: 3, minor_version: 2, patch_version: 1 } at index 10
[2023-02-28T13:05:58Z DEBUG rbperf::rbperf] profiling started
[2023-02-28T13:05:58Z DEBUG rbperf::events] syscall with id 206 found in /sys/kernel/debug/tracing/events/syscalls/sys_enter_getpid/id
[2023-02-28T13:05:58Z DEBUG rbperf::rbperf] program type Tracepoint
[2023-02-28T13:05:58Z DEBUG rbperf::rbperf] program type Tracepoint
Got 6453 samples and 0 errors
Flamegraph written to: rbperf_flame_02282023_13h06m09s.svg
from rbperf.
Great to hear! Thanks so much for trying 😄 .
Just for context, frame count mismatches can still happen if the application that's being profiled or traced produces events very rapidly or if the duration is very long. I have some ideas on how to solve this problem more generally, will update you on this once the PR is ready.
from rbperf.
Related Issues (20)
- syscall tracing: Add list subcommand
- ux/record: Check if user is root
- perf: Measure overhead of running rbperf
- ux: Stop profiling on SIGINT
- Add more thorough tests
- Add a mode to run a ruby process directly
- Generate Ruby configuration programmatically HOT 1
- Add integration test for garbled stacktraces
- Ensure that statically linked Ruby is supported HOT 1
- setup_perf_event fails with ENODEV (`perf` works) HOT 5
- Improve Ruby version matching
- Add scripts to compile a custom libelf and zlib HOT 1
- [feat] Ruby 3.2.0 structs HOT 16
- [feat] Bypass need for PMU with itimer? HOT 7
- Improve error handling when reading maps
- Add documentation on how to support new Ruby versions
- [bug?] Stacks for syscall traces don't seem to make sense HOT 27
- Mismatched frame count issues HOT 2
- bug: Wrong main_thread offset HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rbperf.