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

Unified Diff: src/incremental-marking.cc

Issue 6756006: Exponentially increase incremental marking factor each 512 steps. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/gc
Patch Set: Created 9 years, 9 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
« no previous file with comments | « src/incremental-marking.h ('k') | src/spaces.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/incremental-marking.cc
diff --git a/src/incremental-marking.cc b/src/incremental-marking.cc
index b10ae9c180dcac0055ef0642594c446a56d41213..128d23ae0f79c98a25d4da326f9a77de1b775bec 100644
--- a/src/incremental-marking.cc
+++ b/src/incremental-marking.cc
@@ -39,6 +39,7 @@ MarkingStack IncrementalMarking::marking_stack_;
double IncrementalMarking::steps_took_ = 0;
int IncrementalMarking::steps_count_ = 0;
+intptr_t IncrementalMarking::allocation_marking_factor_ = 0;
static intptr_t allocated = 0;
@@ -221,6 +222,8 @@ void IncrementalMarking::Start() {
VerifyMarkbitsAreClean();
#endif
+ Heap::new_space()->LowerInlineAllocationLimit(kAllocatedThreshold);
+
// Mark strong roots grey.
IncrementalMarkingRootMarkingVisitor visitor;
Heap::IterateStrongRoots(&visitor, VISIT_ONLY_STRONG);
@@ -332,7 +335,7 @@ void IncrementalMarking::Step(intptr_t allocated_bytes) {
start = OS::TimeCurrentMillis();
}
- intptr_t bytes_to_process = allocated * kAllocationMarkingFactor;
+ intptr_t bytes_to_process = allocated * allocation_marking_factor_;
int count = 0;
Map* filler_map = Heap::one_pointer_filler_map();
@@ -360,7 +363,12 @@ void IncrementalMarking::Step(intptr_t allocated_bytes) {
if (FLAG_trace_incremental_marking || FLAG_trace_gc) {
double end = OS::TimeCurrentMillis();
steps_took_ += (end - start);
- steps_count_++;
+ }
+
+ steps_count_++;
+
+ if ((steps_count_ % kAllocationMarkingFactorSpeedupInterval) == 0) {
+ allocation_marking_factor_ *= kAllocationMarkingFactorSpeedup;
}
}
}
« no previous file with comments | « src/incremental-marking.h ('k') | src/spaces.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698