From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS43350 77.247.176.0/21 X-Spam-Status: No, score=-1.5 required=3.0 tests=BAYES_00,RCVD_IN_XBL shortcircuit=no autolearn=no version=3.3.2 X-Original-To: spew@80x24.org Received: from 80x24.org (politkovskaja.torservers.net [77.247.181.165]) by dcvr.yhbt.net (Postfix) with ESMTP id DABE6633811 for ; Tue, 28 Jul 2015 21:46:48 +0000 (UTC) From: Eric Wong To: spew@80x24.org Subject: [PATCH] benchmark: add new benchmarks for hashing dsyms and fixnums Date: Tue, 28 Jul 2015 21:46:46 +0000 Message-Id: <1438120006-2660-1-git-send-email-e@80x24.org> List-Id: --- benchmark/bm_hash_aref_dsym.rb | 4 ++++ benchmark/bm_hash_aref_dsym_long.rb | 19 +++++++++++++++++++ benchmark/bm_hash_aref_fix.rb | 4 ++++ 3 files changed, 27 insertions(+) create mode 100644 benchmark/bm_hash_aref_dsym.rb create mode 100644 benchmark/bm_hash_aref_dsym_long.rb create mode 100644 benchmark/bm_hash_aref_fix.rb diff --git a/benchmark/bm_hash_aref_dsym.rb b/benchmark/bm_hash_aref_dsym.rb new file mode 100644 index 0000000..af4f8c3 --- /dev/null +++ b/benchmark/bm_hash_aref_dsym.rb @@ -0,0 +1,4 @@ +h = {} +syms = ('a'..'z').map { |s| s.to_sym } +syms.each { |s| h[s] = 1 } +200_000.times { syms.each { |s| h[s] } } diff --git a/benchmark/bm_hash_aref_dsym_long.rb b/benchmark/bm_hash_aref_dsym_long.rb new file mode 100644 index 0000000..70e8ee9 --- /dev/null +++ b/benchmark/bm_hash_aref_dsym_long.rb @@ -0,0 +1,19 @@ +# [ruby-core:70129] [Bug #11396] +collection_size = 200000 +sample_size = 10000 + +values = (1..collection_size).to_a.map do |x| + "THIS IS A LONGER STRING THAT IS ALSO UNIQUE #{x}" +end + +symbol_hash = {} + +values.each do |x| + symbol_hash[x.to_sym] = 1 +end + +symbol_sample_array = values.sample(sample_size).map(&:to_sym) + +3000.times do + symbol_sample_array.each { |x| symbol_hash[x] } +end diff --git a/benchmark/bm_hash_aref_fix.rb b/benchmark/bm_hash_aref_fix.rb new file mode 100644 index 0000000..1346890 --- /dev/null +++ b/benchmark/bm_hash_aref_fix.rb @@ -0,0 +1,4 @@ +h = {} +nums = (1..26).to_a +nums.each { |i| h[i] = i } +200_000.times { nums.each { |s| h[s] } } -- EW