Feature #9963

Symbol.count

Added by David Cornu about 1 year ago. Updated 12 months ago.

[ruby-core:63257]
Status:Feedback
Priority:Normal
Assignee:-

Description

I'd like to add a way to get the size of Ruby's symbol table. This is currently possible by using Symbol.all_symbols, however it builds a new array every time it's invoked which is pretty inefficient.

The main use case for this would be to assist in detecting accidental symbol creation.

I have a PR open (https://github.com/ruby/ruby/pull/639) that adds a Symbol.count method but this could also be added in the output of GC.stat.


Related issues

Related to Ruby trunk - Feature #11158: Introduce a Symbol.count API as a more efficient alternative to Symbol.all_symbols.size Open

History

#1 Updated by Motohiro KOSAKI about 1 year ago

I understand symbol table detection is important for tuning ruby nowadays. But as far as I know, it is just because past ruby can't gc symbols.

Now, ruby trunk has symbol GC. (https://bugs.ruby-lang.org/issues/9634).
So, symbol table size is no longer important tuning parameter.

If you have another use case, please elaborate more detail.

#2 Updated by David Cornu about 1 year ago

Now, ruby trunk has symbol GC

Fantastic!

#3 Updated by Hiroshi SHIBATA 12 months ago

  • Status changed from Open to Feedback

#4 Updated by Akira Tanaka 22 days ago

  • Related to Feature #11158: Introduce a Symbol.count API as a more efficient alternative to Symbol.all_symbols.size added

Also available in: Atom PDF