Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/improvement brainstorming #13

Open
ivoanjo opened this issue Apr 10, 2023 · 13 comments
Open

Feature/improvement brainstorming #13

ivoanjo opened this issue Apr 10, 2023 · 13 comments
Labels
good first issue Good for newcomers help wanted Extra attention is needed

Comments

@ivoanjo
Copy link
Owner

ivoanjo commented Apr 10, 2023

I've spent some time thinking about potential improvements to gvl-tracing, and decided to record it here. If anyone's interested in tackling them, feel free to ask for details!

  • (Medium) Create a wrapper command to run some other Ruby command with gvl-tracing:

    $ bundle exec gvl-tracing ruby some-example.rb
  • (Medium) Add support for producing data in a format readable by the Firefox Profiler or Speedscope. Both provide interesting alternatives to perfetto and seem to be easier to integrate/share data with.

    Apparently Firefox Profiler is supposed to be able to read the perfetto format, but I can't get it to open the gvl-tracing output. Maybe there's some subtle detail that it doesn't like?

    Update: Early prototype in Fix perfetto output for using in ff profiler #16 :)

  • (Easy) Add tests! Because I built this gem as an experiment over a few nights and weekends, it was small enough that I could get away without a test suite. I would mega appreciate if someone helped change that :)

@ivoanjo ivoanjo added help wanted Extra attention is needed good first issue Good for newcomers labels Apr 10, 2023
@benoittgt
Copy link
Contributor

benoittgt commented Apr 25, 2023

For the test do you have something in mind? I thought about something simple base on examples folder + partial match of the output. More like integration testing.

Love this menu.

@ivoanjo
Copy link
Owner Author

ivoanjo commented Apr 27, 2023

Yes, I was thinking along those lines of having small code blocks to try to exercise the gem with something that produces only a few events, and then parse the output and see if it looks reasonable.

@benoittgt
Copy link
Contributor

Also another idea, will be to script the examples generation + json compacting.

@ivoanjo
Copy link
Owner Author

ivoanjo commented May 16, 2023

Also another idea, will be to script the examples generation + json compacting.

+1 Yeah, that would be cool as indeed right now whenever we change something the examples can become outdated.

@ivoanjo
Copy link
Owner Author

ivoanjo commented Jun 6, 2023

Updated list of tasks now that #12 and #14 fix some of them :)

ivoanjo added a commit that referenced this issue Jun 12, 2023
Add a new module function `execute(filename)` into `GvlTracing` wrapping
call of `start` and `stop` methods.

This is one of the tasks from
#13
@ivoanjo
Copy link
Owner Author

ivoanjo commented Nov 16, 2023

Added reference to ruby/ruby#8885 since we can use it to solve the thread reuse issue :)

@jpcamara
Copy link
Contributor

Hi there 🙋🏻‍♂️! I'll be submitting some PRs to:

  • Add some specs
  • Attempt Firefox profiler support (it's a little tricky but I do have it loading in the profiler)
  • Fix Ruby 3.3 support - because the parent thread can fire the events now, getting the current thread id causes the timeline to show the Main thread as starting multiple times and the other threads never show as starting

Should have at least the specs up in the next day or so.

@ivoanjo
Copy link
Owner Author

ivoanjo commented Nov 30, 2023

THAT IS AMAZING AND I CAN'T WAIT!

I'll add the caveat that I moved houses the past weekend and I may take a bit to review stuff, but I definitely want to :)

@jpcamara
Copy link
Contributor

jpcamara commented Nov 30, 2023

THAT IS AMAZING AND I CAN'T WAIT!

I'll add the caveat that I moved houses the past weekend and I may take a bit to review stuff, but I definitely want to :)

Haha understandable! I'm sure it'll take me a bit to get everything through anyways. Good luck with the post-move tasks 🫡

@jpcamara
Copy link
Contributor

jpcamara commented Dec 3, 2023

First PR for specs, including a bug fix for the block form of start: #15 🎉. It only covers Ruby 3.2 atm, Ruby 3.3 will be upcoming.

@jpcamara
Copy link
Contributor

I haven't lost sight of the 3.3 updates btw! I'm finishing up some work on MN thread support for Mac in Ruby (ruby/ruby#9178) then I'll open a 3.3 PR here

@ivoanjo
Copy link
Owner Author

ivoanjo commented Dec 13, 2023

Sounds great 🙇!

@ivoanjo
Copy link
Owner Author

ivoanjo commented Mar 29, 2024

Updated list of ideas after 1.5.0 release! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants