From e83e74eba95488a91c8203c38ca4c532e40aad4a Mon Sep 17 00:00:00 2001 From: Watson Date: Mon, 27 Jan 2014 09:56:13 +0900 Subject: [PATCH] add benchmark for Symbol --- test/Benchmark/app/benchmark.rb | 3 +++ test/Benchmark/app/benchmark/string.rb | 1 + test/Benchmark/app/benchmark/string/to_sym.rb | 9 +++++++++ test/Benchmark/app/benchmark/symbol.rb | 5 +++++ test/Benchmark/app/benchmark/symbol/to_s.rb | 9 +++++++++ 5 files changed, 27 insertions(+) create mode 100644 test/Benchmark/app/benchmark/string/to_sym.rb create mode 100644 test/Benchmark/app/benchmark/symbol.rb create mode 100644 test/Benchmark/app/benchmark/symbol/to_s.rb diff --git a/test/Benchmark/app/benchmark.rb b/test/Benchmark/app/benchmark.rb index 4eee61bc..e99951c3 100644 --- a/test/Benchmark/app/benchmark.rb +++ b/test/Benchmark/app/benchmark.rb @@ -25,6 +25,9 @@ autorelease_pool { bm_range } puts "*** String ***" autorelease_pool { bm_string } +puts "*** Symbol ***" +autorelease_pool { bm_symbol } + puts "*** Time ***" autorelease_pool { bm_time } diff --git a/test/Benchmark/app/benchmark/string.rb b/test/Benchmark/app/benchmark/string.rb index 29455b7a..4047069d 100644 --- a/test/Benchmark/app/benchmark/string.rb +++ b/test/Benchmark/app/benchmark/string.rb @@ -14,6 +14,7 @@ def bm_string string_split(x) string_to_f(x) string_to_i(x) + string_to_sym(x) end end diff --git a/test/Benchmark/app/benchmark/string/to_sym.rb b/test/Benchmark/app/benchmark/string/to_sym.rb new file mode 100644 index 00000000..20b475fc --- /dev/null +++ b/test/Benchmark/app/benchmark/string/to_sym.rb @@ -0,0 +1,9 @@ +def string_to_sym(x) + string = "x" * 30 + + x.report "to_sym" do + 1000000.times do + string.to_sym + end + end +end diff --git a/test/Benchmark/app/benchmark/symbol.rb b/test/Benchmark/app/benchmark/symbol.rb new file mode 100644 index 00000000..10289e6d --- /dev/null +++ b/test/Benchmark/app/benchmark/symbol.rb @@ -0,0 +1,5 @@ +def bm_symbol + Benchmark.benchmark("", 30, "%r\n") do |x| + symbol_to_s(x) + end +end diff --git a/test/Benchmark/app/benchmark/symbol/to_s.rb b/test/Benchmark/app/benchmark/symbol/to_s.rb new file mode 100644 index 00000000..0f734497 --- /dev/null +++ b/test/Benchmark/app/benchmark/symbol/to_s.rb @@ -0,0 +1,9 @@ +def symbol_to_s(x) + symbol = :"hello world" + + x.report "to_s" do + 1000000.times do + symbol.to_s + end + end +end