From: Eric Wong <normalperson@...> Date: 2014-03-22T23:41:24+00:00 Subject: [ruby-core:61638] Re: [ruby-trunk - Feature #9425] [PATCH] st: use power-of-two sizes to avoid slow modulo ops normalperson@yhbt.net wrote: > OK, I was right about compare_by_identity being worse with power-of-two, > but I fixed it by tweaking numhash: > > http://bogomips.org/ruby.git/patch?id=1579e9d0d82789 I tweaked that further, adding +3 instead of +1 to RUBY_SPECIAL_SHIFT in r45384. Also updated NEWS in case some extensions need tweaking for performance. Haswell Xeon E3-1230 v3 numbers: hash_aref_miss 1.166 hash_aref_str 1.167 hash_aref_sym 1.224 hash_aref_sym_long 1.270 hash_flatten 1.656 hash_ident_num 1.142 hash_ident_obj 1.193 hash_ident_str 1.194 hash_ident_sym 1.171 hash_keys 1.002 hash_shift 1.122 hash_values 1.006 loop_whileloop2 1.001 vm2_bighash* 1.233