ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:99319] [Ruby master Bug#17050] profiler gem
@ 2020-07-25  0:03 samuel
  2020-07-25  0:25 ` [ruby-core:99320] " samuel
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: samuel @ 2020-07-25  0:03 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been reported by ioquatix (Samuel Williams).

----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99320] [Ruby master Bug#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
@ 2020-07-25  0:25 ` samuel
  2020-07-25  3:39 ` [ruby-core:99323] " duerst
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: samuel @ 2020-07-25  0:25 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by ioquatix (Samuel Williams).


Also I'd be happy to receive the `profile` namespace too but either one is fine and the `profile` gem actually has an interesting implementation.

----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-86714

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99323] [Ruby master Bug#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
  2020-07-25  0:25 ` [ruby-core:99320] " samuel
@ 2020-07-25  3:39 ` duerst
  2020-07-25  4:10 ` [ruby-core:99324] " samuel
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: duerst @ 2020-07-25  3:39 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by duerst (Martin Dürst).


Can you tell us shortly what you plan to use that gem/namespace for? If it's something that can (in some reasonable way) replace the (former?) profile/profiler functionality, then please go for it. At one point, I was planning to work on this, but I didn't find the time.

----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-86718

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99324] [Ruby master Bug#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
  2020-07-25  0:25 ` [ruby-core:99320] " samuel
  2020-07-25  3:39 ` [ruby-core:99323] " duerst
@ 2020-07-25  4:10 ` samuel
  2020-07-25  9:38 ` [ruby-core:99329] " eregontp
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: samuel @ 2020-07-25  4:10 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by ioquatix (Samuel Williams).


My initial goal is to expose some general data structures for efficiently capturing large memory profiles on top of `ObjectSpace` and `GC` modules, similar to how memory_profiler gem works. I don't mind making separate gem, but it seems like the `profile` and `profiler` gem would be ideal places for different kinds of profilers. Initially I was thinking of making separate gems and trying to provide a unified interface, e.g.

- `memory_profiler` -> `profiler-memory`
- `stackprof` -> `profiler-stack`
- `ruby-prof` -> `profiler-sample`

etc.

I think that's too ambitious initially, but yeah, that's a longer term idea, with an initial focus on `profiler-memory` of which I've already got working code and just looking how to structure it best for longer term integration.

A sideways step would be to provide `rspec-memory` hooks for using these profilers either for general summary or assertions around blocks of code (of which I already maintain the `rspec-memory` gem which does some parts of this).

@ko1 said he wants to use `profile` gem, but I'm not sure if he also intended to use `profiler` gem. So, @ko1, can I use one of them, and you can use the other?


----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-86719

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99329] [Ruby master Bug#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
                   ` (2 preceding siblings ...)
  2020-07-25  4:10 ` [ruby-core:99324] " samuel
@ 2020-07-25  9:38 ` eregontp
  2020-07-25 11:10 ` [ruby-core:99332] " samuel
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: eregontp @ 2020-07-25  9:38 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by Eregon (Benoit Daloze).


I'd recommend starting with something specific like `profiler-memory`.

`profiler` is very generic but therefore also unclear and will make people think it's a stdlib-like profiler, but I guess it will not be.

I also think it's too early to tell if your gem will be "the profiler everyone uses".

BTW, stackprof is a CPU sampling profiler, and ruby-prof seems a tracing CPU profiler.

As a side note it'd be nice if profiler-like gems work on more than 1 implementation.
I think most them only work on CRuby, because they use C APIs that are efficient on CRuby but basically inefficient on other implementations (see https://github.com/oracle/truffleruby/issues/2044#issuecomment-654848324 for details regarding stackprof & TruffleRuby).

----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-86724

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99332] [Ruby master Bug#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
                   ` (3 preceding siblings ...)
  2020-07-25  9:38 ` [ruby-core:99329] " eregontp
@ 2020-07-25 11:10 ` samuel
  2020-07-25 13:12 ` [ruby-core:99334] " eregontp
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: samuel @ 2020-07-25 11:10 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by ioquatix (Samuel Williams).


I agree all your points. I already have working `profiler-memory` to a certain extent.

----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-86727

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99334] [Ruby master Bug#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
                   ` (4 preceding siblings ...)
  2020-07-25 11:10 ` [ruby-core:99332] " samuel
@ 2020-07-25 13:12 ` eregontp
  2020-07-25 13:15 ` [ruby-core:99335] " jean.boussier
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: eregontp @ 2020-07-25 13:12 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by Eregon (Benoit Daloze).


In the `profile` stdlib, both files are used: `-rprofile` starts the profiler immediately, while `profiler.rb` is like a library:
https://github.com/ruby/ruby/blob/ruby_2_6/lib/profile.rb

So it seems to me not advisable to reuse those "require names" for something not strictly compatible since `profile` was only removed in 2.7.

----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-86729

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99335] [Ruby master Bug#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
                   ` (5 preceding siblings ...)
  2020-07-25 13:12 ` [ruby-core:99334] " eregontp
@ 2020-07-25 13:15 ` jean.boussier
  2020-07-25 23:27 ` [ruby-core:99342] " samuel
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jean.boussier @ 2020-07-25 13:15 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by byroot (Jean Boussier).


@ioquatrix I’m curious. What’s the difference between your memory-profiler and the existing memory_profiler?

For context I’ve been working on https://github.com/shopify/heap-profiler for the last week, and I’m also very interested in improving ObjectSpace and GC APIs

----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-86730

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99342] [Ruby master Bug#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
                   ` (6 preceding siblings ...)
  2020-07-25 13:15 ` [ruby-core:99335] " jean.boussier
@ 2020-07-25 23:27 ` samuel
  2020-08-12  7:16 ` [ruby-core:99566] [Ruby master Misc#17050] " ko1
  2020-09-02  6:14 ` [ruby-core:99832] " samuel
  9 siblings, 0 replies; 11+ messages in thread
From: samuel @ 2020-07-25 23:27 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by ioquatix (Samuel Williams).


I was able to profile 200+ billion allocations with my fork which was impossible with the current implementations.

----------------------------------------
Bug #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-86736

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99566] [Ruby master Misc#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
                   ` (7 preceding siblings ...)
  2020-07-25 23:27 ` [ruby-core:99342] " samuel
@ 2020-08-12  7:16 ` ko1
  2020-09-02  6:14 ` [ruby-core:99832] " samuel
  9 siblings, 0 replies; 11+ messages in thread
From: ko1 @ 2020-08-12  7:16 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by ko1 (Koichi Sasada).

Status changed from Open to Feedback

Sorry for late response.

I have a plan to remake current profile library with recent APIs.

----------------------------------------
Misc #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-87032

* Author: ioquatix (Samuel Williams)
* Status: Feedback
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:99832] [Ruby master Misc#17050] profiler gem
  2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
                   ` (8 preceding siblings ...)
  2020-08-12  7:16 ` [ruby-core:99566] [Ruby master Misc#17050] " ko1
@ 2020-09-02  6:14 ` samuel
  9 siblings, 0 replies; 11+ messages in thread
From: samuel @ 2020-09-02  6:14 UTC (permalink / raw)
  To: ruby-core

Issue #17050 has been updated by ioquatix (Samuel Williams).

Status changed from Feedback to Closed

Okay, I look forward to your profiler.

----------------------------------------
Misc #17050: profiler gem
https://bugs.ruby-lang.org/issues/17050#change-87355

* Author: ioquatix (Samuel Williams)
* Status: Closed
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
----------------------------------------
I would like to reuse profiler gem namespace:

https://rubygems.org/gems/profiler/versions

It currently conflicts with `profile/lib/profiler.rb` however this is no longer part of stdlib.

cc @ko1



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-09-02  6:15 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-25  0:03 [ruby-core:99319] [Ruby master Bug#17050] profiler gem samuel
2020-07-25  0:25 ` [ruby-core:99320] " samuel
2020-07-25  3:39 ` [ruby-core:99323] " duerst
2020-07-25  4:10 ` [ruby-core:99324] " samuel
2020-07-25  9:38 ` [ruby-core:99329] " eregontp
2020-07-25 11:10 ` [ruby-core:99332] " samuel
2020-07-25 13:12 ` [ruby-core:99334] " eregontp
2020-07-25 13:15 ` [ruby-core:99335] " jean.boussier
2020-07-25 23:27 ` [ruby-core:99342] " samuel
2020-08-12  7:16 ` [ruby-core:99566] [Ruby master Misc#17050] " ko1
2020-09-02  6:14 ` [ruby-core:99832] " samuel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).