|
Ran
|
Jobs
1
|
Files
519
|
Run time
2min
|
Badge
README BADGES
|
push
github
tuple: remove useless loop from `tuple_dictionary_delete_hash` Inside `tuple_dictionary_delete_hash`, there was a loop that, on each iteration, searched for the first non-deleted element using `mh_first`, which has a complexity of `O(n)`, and deleted it using `mh_strnu32_del`. After the loop finished executing, `tuple_dictionary_delete_hash` immediately called `mh_strnu32_delete`. All elements are stored in the hashmap inplace, so `del` doesn't invoke any memory deallocation functions. `del` also doesn't call destructors for the elements; it merely sets a specific bit in the bitmap to 0. Immediately after the loop, `mh_strnu32_delete(hash)` will delete the hashmap `hash` along with the array `hash->p` containing all elements inplace. This commit simply removes this useless loop, which was causing significant performance issues when closing a read view. Closes tarantool/tarantool-ee#1043, #12115 NO_DOC=performance improvement NO_TEST=performance improvement (cherry picked from commit 4b720077b)
68787 of 116384 branches covered (59.1%)
103519 of 118215 relevant lines covered (87.57%)
1628412.63 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
90.5 |
-0.07% | src/box/applier.cc |
| 1 |
87.84 |
-1.35% | src/box/lua/ctl.c |
| 1 |
84.16 |
-0.02% | src/box/xlog.c |
| 1 |
87.5 |
-1.79% | src/box/xlog.h |
| 1 |
96.1 |
-0.05% | src/lib/salad/bps_tree.h |
| 2 |
92.34 |
-0.05% | src/box/vinyl.c |
| 2 |
95.03 |
-0.02% | src/box/xrow_update_field.c |
| 2 |
96.15 |
-3.85% | src/lib/core/iostream.h |
| 3 |
97.98 |
-0.21% | src/box/memtx_tx.c |
| 3 |
87.23 |
-0.2% | src/box/vy_run.c |
| 7 |
94.46 |
-1.44% | src/box/vy_read_iterator.c |
| 19 |
90.74 |
-0.56% | src/box/box.cc |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 20061901270.1 | 519 |
87.57 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|