|
Ran
|
Jobs
1
|
Files
513
|
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)
69837 of 117652 branches covered (59.36%)
104828 of 119610 relevant lines covered (87.64%)
1405735.13 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 4 |
93.31 |
-1.27% | src/lib/swim/swim_io.c |
| 2 |
91.37 |
0.48% | src/box/box.cc |
| 2 |
95.72 |
-0.23% | src/box/replication.cc |
| 2 |
85.71 |
-9.52% | src/lib/core/tt_sigaction.c |
| 2 |
95.45 |
-4.55% | src/lib/json/json.h |
| 1 |
96.3 |
-0.18% | src/box/relay.cc |
| 1 |
92.51 |
0.04% | src/box/vinyl.c |
| 1 |
93.62 |
-0.53% | src/box/vy_range.c |
| 1 |
84.82 |
-0.1% | src/box/xlog.c |
| 1 |
87.5 |
-1.59% | src/box/xlog.h |
| 1 |
96.55 |
-1.15% | src/lib/core/histogram.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 20061903166.1 | 513 |
87.64 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|