Use #== in Conversion.boolean?
On JRuby 9.0.1.0 this is a bit faster than using "is_a?": require 'benchmark/ips' input = false Benchmark.ips do |bench| bench.report 'is_a?' do input.is_a?(TrueClass) || input.is_a?(FalseClass) end bench.report '==' do input == true || input == false end bench.compare! end This outputs: Calculating ------------------------------------- is_a? 86.129k i/100ms == 112.837k i/100ms ------------------------------------------------- is_a? 7.375M (±15.3%) i/s - 35.227M == 10.428M (±12.0%) i/s - 50.889M Comparison: ==: 10427617.5 i/s is_a?: 7374666.2 i/s - 1.41x slower On both MRI 2.2 and Rubinius 2.5.8 there's little to no difference between these two methods.
This commit is contained in:
parent
d815437217
commit
9bb908f8b1
|
@ -89,7 +89,7 @@ module Oga
|
||||||
|
|
||||||
# @return [TrueClass|FalseClass]
|
# @return [TrueClass|FalseClass]
|
||||||
def self.boolean?(value)
|
def self.boolean?(value)
|
||||||
value.is_a?(TrueClass) || value.is_a?(FalseClass)
|
value == true || value == false
|
||||||
end
|
end
|
||||||
|
|
||||||
# @param [Oga::XML::NodeSet] set
|
# @param [Oga::XML::NodeSet] set
|
||||||
|
|
Loading…
Reference in New Issue