From 1d148f353a2c71bc12fd066e467649fd17df3c95 Mon Sep 17 00:00:00 2001 From: Qi Wang Date: Tue, 23 Jul 2019 12:49:17 -0700 Subject: [PATCH] Optimize max_active_fit in first_fit. Stop scanning once reached the first max_active_fit size. --- src/extent.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/extent.c b/src/extent.c index 6fdb7b02..a2dbde12 100644 --- a/src/extent.c +++ b/src/extent.c @@ -453,7 +453,6 @@ extents_first_fit_locked(tsdn_t *tsdn, arena_t *arena, extents_t *extents, assert(!extent_heap_empty(&extents->heaps[i])); extent_t *extent = extent_heap_first(&extents->heaps[i]); assert(extent_size_get(extent) >= size); - bool size_ok = true; /* * In order to reduce fragmentation, avoid reusing and splitting * large extents for much smaller sizes. @@ -462,10 +461,9 @@ extents_first_fit_locked(tsdn_t *tsdn, arena_t *arena, extents_t *extents, */ if (extents->delay_coalesce && (sz_pind2sz(i) >> opt_lg_extent_max_active_fit) > size) { - size_ok = false; + break; } - if (size_ok && - (ret == NULL || extent_snad_comp(extent, ret) < 0)) { + if (ret == NULL || extent_snad_comp(extent, ret) < 0) { ret = extent; } if (i == SC_NPSIZES) {