Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(398)

Unified Diff: src/heap/spaces.h

Issue 2232653003: Reland of "[heap] Switch to 500k pages" (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: s/ShrinkPagesToHighWaterMark/ShrinkImmortalImmovablePages/ Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/heap/spaces.h
diff --git a/src/heap/spaces.h b/src/heap/spaces.h
index c035342bfa85058dd9be34024e17cbc6d5722be3..6e75abd39d014e0b897cd23839182f04890eaba3 100644
--- a/src/heap/spaces.h
+++ b/src/heap/spaces.h
@@ -689,7 +689,7 @@ class Page : public MemoryChunk {
// account.
// TODO(hpayer): This limit should be way smaller but we currently have
// short living objects >256K.
- static const int kMaxRegularHeapObjectSize = 600 * KB;
+ static const int kMaxRegularHeapObjectSize = 400 * KB;
static inline Page* ConvertNewToOld(Page* old_page, PagedSpace* new_owner);
@@ -1270,6 +1270,8 @@ class MemoryAllocator {
intptr_t commit_area_size,
Executability executable, Space* space);
+ void ShrinkChunk(MemoryChunk* chunk, size_t bytes_to_shrink);
+
Address ReserveAlignedMemory(size_t requested, size_t alignment,
base::VirtualMemory* controller);
Address AllocateAlignedMemory(size_t reserve_size, size_t commit_size,
@@ -1575,6 +1577,7 @@ class AllocationStats BASE_EMBEDDED {
capacity_ -= size_in_bytes;
size_ -= size_in_bytes;
CHECK_GE(size_, 0);
+ CHECK_GE(capacity_, 0);
}
// Allocate from available bytes (available -> size).
@@ -2140,6 +2143,10 @@ class PagedSpace : public Space {
iterator begin() { return iterator(anchor_.next_page()); }
iterator end() { return iterator(&anchor_); }
+ // Shrink all pages of the space to be exactly the size needed using the
+ // high water mark.
Hannes Payer (out of office) 2016/08/10 21:17:35 We only do that for immortal immovable pages.
Michael Lippautz 2016/08/11 09:48:10 Done.
+ void ShrinkImmortalImmovablePages();
+
protected:
// PagedSpaces that should be included in snapshots have different, i.e.,
// smaller, initial pages.
« no previous file with comments | « src/heap/mark-compact.cc ('k') | src/heap/spaces.cc » ('j') | src/heap/spaces.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698