Revision: 16475
Author: [email protected]
Date: Mon Sep 2 13:36:49 2013 UTC
Log: Bump MaxRegularSpaceAllocationSize to InitialSemiSpaceSize() * 4/5
to allow allocation of large packed arrays in paged spaces.
BUG=v8:2790
[email protected]
Review URL: https://codereview.chromium.org/23604023
http://code.google.com/p/v8/source/detail?r=16475
Modified:
/branches/bleeding_edge/src/heap.cc
/branches/bleeding_edge/src/heap.h
/branches/bleeding_edge/src/objects.h
=======================================
--- /branches/bleeding_edge/src/heap.cc Mon Sep 2 10:35:34 2013 UTC
+++ /branches/bleeding_edge/src/heap.cc Mon Sep 2 13:36:49 2013 UTC
@@ -6716,6 +6716,12 @@
RoundUp(max_old_generation_size_,
Page::kPageSize));
+ // We rely on being able to allocate new arrays in paged spaces.
+ ASSERT(MaxRegularSpaceAllocationSize() >=
+ (JSArray::kSize +
+ FixedArray::SizeFor(JSObject::kInitialMaxFastElementArray) +
+ AllocationMemento::kSize));
+
configured_ = true;
return true;
}
=======================================
--- /branches/bleeding_edge/src/heap.h Mon Sep 2 10:35:34 2013 UTC
+++ /branches/bleeding_edge/src/heap.h Mon Sep 2 13:36:49 2013 UTC
@@ -523,7 +523,7 @@
int InitialSemiSpaceSize() { return initial_semispace_size_; }
intptr_t MaxOldGenerationSize() { return max_old_generation_size_; }
intptr_t MaxExecutableSize() { return max_executable_size_; }
- int MaxRegularSpaceAllocationSize() { return InitialSemiSpaceSize() *
3/4; }
+ int MaxRegularSpaceAllocationSize() { return InitialSemiSpaceSize() *
4/5; }
// Returns the capacity of the heap in bytes w/o growing. Heap grows when
// more spaces are needed until it reaches the limit.
=======================================
--- /branches/bleeding_edge/src/objects.h Mon Sep 2 10:35:34 2013 UTC
+++ /branches/bleeding_edge/src/objects.h Mon Sep 2 13:36:49 2013 UTC
@@ -2680,10 +2680,9 @@
// don't want to be wasteful with long lived objects.
static const int kMaxUncheckedOldFastElementsLength = 500;
- // TODO(2790): HAllocate currently always allocates fast backing stores
- // in new space, where on x64 we can only fit ~98K elements. Keep this
- // limit lower than that until HAllocate is made smarter.
- static const int kInitialMaxFastElementArray = 95000;
+ // Note that Heap::MaxRegularSpaceAllocationSize() puts a limit on
+ // permissible values (see the ASSERT in heap.cc).
+ static const int kInitialMaxFastElementArray = 100000;
static const int kFastPropertiesSoftLimit = 12;
static const int kMaxFastProperties = 64;
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.