Resize identity map by doubling instead of quadrupling.
Perf-sheriffs please revert if this causes any performance regressions. BUG= Change-Id: I9ead7148e1e0146ece3614df49fd031dd1e357fe Reviewed-on: https://chromium-review.googlesource.com/445159 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#44143}
This commit is contained in:
parent
80879b8c26
commit
3d82e557ae
@ -11,7 +11,7 @@ namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
static const int kInitialIdentityMapSize = 4;
|
||||
static const int kResizeFactor = 4;
|
||||
static const int kResizeFactor = 2;
|
||||
|
||||
IdentityMapBase::~IdentityMapBase() {
|
||||
// Clear must be called by the subclass to avoid calling the virtual
|
||||
@ -86,7 +86,8 @@ void* IdentityMapBase::DeleteIndex(int index) {
|
||||
size_--;
|
||||
DCHECK_GE(size_, 0);
|
||||
|
||||
if (size_ * kResizeFactor < capacity_ / kResizeFactor) {
|
||||
if (capacity_ > kInitialIdentityMapSize &&
|
||||
size_ * kResizeFactor < capacity_ / kResizeFactor) {
|
||||
Resize(capacity_ / kResizeFactor);
|
||||
return ret_value; // No need to fix collisions as resize reinserts keys.
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user