- ブロックのみ
@tracer = TracePoint.new(:a_call, :a_return, :line){|tp|
end
- skip? メソッド()を追加
@tracer = TracePoint.new(:a_call, :a_return, :line){|tp|
  next if skip?(tp)
end
- depth を取得
@tracer = TracePoint.new(:a_call, :a_return, :line){|tp|
  next if skip?(tp)
  depth = caller.size
end
- call_identifier_str を取得
@tracer = TracePoint.new(:a_call, :a_return, :line){|tp|
  next if skip?(tp)
  depth = caller.size
  
  call_identifier_str =
          if tp.defined_class
            minfo(tp)
          else
            "block"
          end
end
- :call, :c_call, :b_call のみ配列に挿入
@tracer = TracePoint.new(:a_call, :a_return, :line){|tp|
  next if skip?(tp)
  depth = caller.size
  
  call_identifier_str =
          if tp.defined_class
            minfo(tp)
          else
            "block"
          end
  case tp.event
    when :call, :c_call, :b_call
      depth += 1 if tp.event == :c_call
      sp = ' ' * depth
      out tp, ">#{sp}#{call_identifier_str}", depth
    end
  end
- :return, :c_return, :b_return のみ配列に挿入
@tracer = TracePoint.new(:a_call, :a_return, :line){|tp|
  next if skip?(tp)
  depth = caller.size
  
  call_identifier_str =
          if tp.defined_class
            minfo(tp)
          else
            "block"
          end
  case tp.event
    when :return, :c_return, :b_return
      depth += 1 if tp.event == :c_return
      sp = ' ' * depth
      return_str = DEBUGGER__.safe_inspect(tp.return_value, short: true)
      out tp, "<#{sp}#{call_identifier_str} #=> #{return_str}", depth
    end
  end
|  | 秒 |  |  |  |  | 
| トレースなし | 0.006943000014871359 | 0.0072929998859763145 | 0.013362000230699778 | 0.007668000180274248 | 0.007089999970048666 | 
| 1. ブロックのみ | 0.0077840001322329044 | 0.009405000135302544 | 0.006493999622762203 | 0.008220999967306852 | 0.007183999754488468 | 
| 2. skip? メソッド追加 | 0.0473340000025928 | 0.04438699968159199 | 0.04924699990078807 | 0.04245599964633584 | 0.04979000007733703 | 
| 3. depth を取得 | 0.8388209999538958 | 0.8334289998747408 | 0.8361980002373457 | 0.8419610001146793 | 0.8316079997457564 | 
| 4. call_identifier_str を取得 | 0.8489760002121329 | 0.8583479998633265 | 0.8502550004050136 | 0.8412570003420115 | 0.8319780002348125 | 
| 5. :call, :c_call, :b_call のみ配列に挿入 | 0.8854970000684261 | 0.884879999794066 | 0.8771480000577867 | 0.8847179999575019 | 0.8872270002029836 | 
| 6. :return, :c_return, :b_return のみ配列に挿入 | 0.9496829998679459 | 0.9501910000108182 | 0.9565590000711381 | 0.9573569996282458 | 0.9502260000444949 |