1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

st.c: skip all deleted entries [Bug #17779]

Update the start entry skipping all already deleted entries.
Fixes performance issue of `Hash#first` in a certain case.
This commit is contained in:
tompng (tomoya ishida) 2021-04-11 19:04:31 +09:00 committed by Nobuyoshi Nakada
parent 60bdf03b6d
commit 9f9045123e
No known key found for this signature in database
GPG key ID: 7CD2805BFA3770C6
2 changed files with 18 additions and 2 deletions

11
benchmark/hash_first.yml Normal file
View file

@ -0,0 +1,11 @@
prelude: |
hash1 = 1_000_000.times.to_h { [rand, true]}
hash2 = hash1.dup
hash2.keys[1..100_000].each { hash2.delete _1 }
hash2.delete hash2.first[0]
benchmark:
hash1: hash1.first
hash2: hash2.first
loop_count: 100_000