[macruby-changes] [MacRuby/MacRuby] 6beac7: improve a performance in String#== and String#eql?
GitHub
noreply at github.com
Sat Dec 29 22:24:50 PST 2012
Branch: refs/heads/master
Home: https://github.com/MacRuby/MacRuby
Commit: 6beac71eb495bb0592954a5cdd81906347cdfe12
https://github.com/MacRuby/MacRuby/commit/6beac71eb495bb0592954a5cdd81906347cdfe12
Author: Watson <watson1978 at gmail.com>
Date: 2012-12-29 (Sat, 29 Dec 2012)
Changed paths:
M string.c
Log Message:
-----------
improve a performance in String#== and String#eql?
When the length of the string does not match, it will not need to invoke a memcmp().
* before
user system total real
== 0.230000 0.000000 0.230000 ( 0.233827)
eql? 0.230000 0.000000 0.230000 ( 0.227859)
* after
user system total real
== 0.020000 0.000000 0.020000 ( 0.014583)
eql? 0.010000 0.000000 0.010000 ( 0.015350)
Test Code:
----
require 'benchmark'
str = "abc" * 100
str1 = str * 100
str2 = str * 200
Benchmark.bm(4) do |x|
x.report "==" do
100000.times do
str1 == str2
end
end
x.report "eql?" do
100000.times do
str1.eql? str2
end
end
end
More information about the macruby-changes
mailing list