From: ko1@... Date: 2014-06-19T22:44:05+00:00 Subject: [ruby-core:63259] [ruby-trunk - Feature #9953] set_trace_func values which could be frozen or symbols Issue #9953 has been updated by Koichi Sasada. Hi, > event_type becomes a symbol (or could be single frozen string per distinct event type) Now, TracePoint#event returns symbol. I think it is enough and set_trace_func should not be modified. I have no objection to make strings frozen. > filename becomes a single frozen string per file (frozen per spec and possible single instance as impl-specific detail) Again, I have no objection to make strings frozen. (maybe nobody depends on such behavior) ---------------------------------------- Feature #9953: set_trace_func values which could be frozen or symbols https://bugs.ruby-lang.org/issues/9953#change-47307 * Author: Thomas Enebo * Status: Open * Priority: Normal * Assignee: * Category: * Target version: ---------------------------------------- I have been changing JRuby's tracing support internally and notice we churn through lots of extra Ruby objects per set_trace_func call. It strikes me that a couple of these values do not need to be allocated more than once. I propose: 1. event_type becomes a symbol (or could be single frozen string per distinct event type) 2. filename becomes a single frozen string per file (frozen per spec and possible single instance as impl-specific detail) I find the value of these two values being mutable strings to be minimal and tracing speed will have less GC-pressure. -- https://bugs.ruby-lang.org/