Skip to content
  • nagachika's avatar
    4f1e047f
    merge revision(s) a3eb5e5c: [Backport #20573] · 4f1e047f
    nagachika authored
    	Don't call `Warning.warn` unless the category is enabled (#10981)
    
    	Don't call `Warning.warn` unless the category is enabled
    
    	The warning category should be enabled if we want to call
    	`Warning.warn`.
    
    	This commit speeds up the following benchmark:
    
    	```ruby
    	eval "def test; " +
    	  1000.times.map { "'  '.chomp!" }.join(";") + "; end"
    
    	def run_benchmark count
    	  i = 0
    	  while i < count
    	    start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
    	    yield
    	    ms = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
    	    puts "itr ##{i}: #{(ms * 1000).to_i}ms"
    	    i += 1
    	  end
    	end
    
    	run_benchmark(25) do
    	  250.times do
    	    test
    	  end
    	end
    	```
    
    	On `master` this runs at about 92ms per iteration. With this patch, it
    	is 7ms per iteration.
    
    	[Bug #20573]
    4f1e047f
    merge revision(s) a3eb5e5c: [Backport #20573]
    nagachika authored
    	Don't call `Warning.warn` unless the category is enabled (#10981)
    
    	Don't call `Warning.warn` unless the category is enabled
    
    	The warning category should be enabled if we want to call
    	`Warning.warn`.
    
    	This commit speeds up the following benchmark:
    
    	```ruby
    	eval "def test; " +
    	  1000.times.map { "'  '.chomp!" }.join(";") + "; end"
    
    	def run_benchmark count
    	  i = 0
    	  while i < count
    	    start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
    	    yield
    	    ms = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
    	    puts "itr ##{i}: #{(ms * 1000).to_i}ms"
    	    i += 1
    	  end
    	end
    
    	run_benchmark(25) do
    	  250.times do
    	    test
    	  end
    	end
    	```
    
    	On `master` this runs at about 92ms per iteration. With this patch, it
    	is 7ms per iteration.
    
    	[Bug #20573]
Loading