<enebo[m]>
haha I don't remember doing this at all but I remember doing weird shit to make nb ruby to debug
<headius[m]>
oif
<enebo[m]>
no doubt all the line number related aspects are fixed
<headius[m]>
too bad this has all fallen into disrepair...it was one of the few places we collaborate across a number of impls and with multiple IDE developers
<enebo[m]>
number of frames probably is better or fixed
<enebo[m]>
If I remembered it existed I probably would have made it 9.x only and fixed it
<enebo[m]>
in any case I do not think ruby-debug-base is even used by ruby-debug anymore
<enebo[m]>
~1700 lines of C...likely ~1/2 in Java assuming we can get any reasonable parity. I would think so
<headius[m]>
I pinged mr Ushakov on twitter
<headius[m]>
enebo: changing gears for a moment...I just managed to make a gem that builds the async-profiler JVM plugin
<headius[m]>
the idea being that a user could install jruby-async-profiler and then get a launcher for JRuby that starts it up with appropriate flags
<headius[m]>
I wanted to try this out after deprecating --client and --server and realizing that there's no replacement for the --sample flag's use of -Xprof in Java 10+
<headius[m]>
so --sample needs to be able to find async-profiler to do an equivalent profile
rusk has quit [Remote host closed the connection]
<enebo[m]>
headius: that sounds cool enough
<headius[m]>
I have --sample using it if present now and warning on JDK9+ when it's not present
<headius[m]>
this is turning out easier than I thought
<headius[m]>
I tried this with only three times loops and Java code doesn't even show up in the top 30 or so entries
<headius[m]>
and that top entry is from the agent itself for its profile gathering...so there's gotta be a way to filter this
<enebo[m]>
I had a similar issue with async when looking at gem list and it was dominated with libc and lower stuff
<enebo[m]>
a lot of extra locking jvm internals making the actual program meat very slender in a flame graph
<headius[m]>
yeah
<headius[m]>
I mean this profile is interesting but the actionable bits are lost in the native noise
<headius[m]>
much of this is from Hotspot's C2 JIT
<headius[m]>
now I should point out that async-profiler has several much more useful formats...I'm just trying to get this to be a rough equivalent to the java-only -Xprof output
<headius[m]>
ideally I think this jruby-async-profiler gem can install a launcher script that spits out a flame graph or flat or call stacks as text, with sampled methods and async and locks and such all as simple options
<enebo[m]>
yeah something which can be a little more friendly than that command line itself
<enebo[m]>
which should also be possible to use but it is not friendly
<headius[m]>
yeah mostly the sampled and allocation profiles will be best, but also passing flags to force JIT to get more Ruby in the results (especially for allocation profile)
lucasb has quit [Quit: Connection closed for inactivity]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]