diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-08-07 01:48:39 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-08-07 01:48:39 +0900 |
| commit | 1358725738433f4b91ce268e96be6a21db03a24b (patch) | |
| tree | 05f75c1d26800db72f32df4e524231a90dd7797f | |
| parent | 1b9c4855a3178238ab1c71addbfa364468abb1fe (diff) | |
| parent | ec7475d88b710a70c5465d6144a9cf2113a20984 (diff) | |
| download | mruby-1358725738433f4b91ce268e96be6a21db03a24b.tar.gz mruby-1358725738433f4b91ce268e96be6a21db03a24b.zip | |
Merge pull request #3764 from christopheraue/new_hash_perf
Improved speed of creating new hash tables
| -rw-r--r-- | src/hash.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/hash.c b/src/hash.c index 27d25b384..f7e84463d 100644 --- a/src/hash.c +++ b/src/hash.c @@ -145,10 +145,8 @@ mrb_hash_new_capa(mrb_state *mrb, mrb_int capa) struct RHash *h; h = (struct RHash*)mrb_obj_alloc(mrb, MRB_TT_HASH, mrb->hash_class); - h->ht = kh_init(ht, mrb); - if (capa > 0) { - kh_resize(ht, mrb, h->ht, capa); - } + /* khash needs 1/4 empty space so it is not resized immediately */ + h->ht = kh_init_size(ht, mrb, capa*4/3); h->iv = 0; return mrb_obj_value(h); } |
