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

Unified Diff: test/unittests/heap/gc-tracer-unittest.cc

Issue 2361563004: [heap] Simplify incremental marking counters in GCTracer. (Closed)
Patch Set: fix test Created 4 years, 3 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/heap/gc-tracer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/unittests/heap/gc-tracer-unittest.cc
diff --git a/test/unittests/heap/gc-tracer-unittest.cc b/test/unittests/heap/gc-tracer-unittest.cc
index 8af8689226e9b0847acb0e202c47eafbd927ed0b..677da0eb0bfaae74d512e788ca166dcb9ebc78c8 100644
--- a/test/unittests/heap/gc-tracer-unittest.cc
+++ b/test/unittests/heap/gc-tracer-unittest.cc
@@ -191,6 +191,10 @@ TEST_F(GCTracerTest, IncrementalMarkingDetails) {
// Round 1.
tracer->AddScopeSample(GCTracer::Scope::MC_INCREMENTAL_FINALIZE, 50);
+ // Scavenger has no impact on incremental marking details.
+ tracer->Start(SCAVENGER, GarbageCollectionReason::kTesting,
+ "collector unittest");
+ tracer->Stop(SCAVENGER);
tracer->Start(MARK_COMPACTOR, GarbageCollectionReason::kTesting,
"collector unittest");
// Switch to incremental MC to enable writing back incremental scopes.
@@ -211,9 +215,9 @@ TEST_F(GCTracerTest, IncrementalMarkingDetails) {
150,
tracer->current_
.incremental_marking_scopes[GCTracer::Scope::MC_INCREMENTAL_FINALIZE]
- .cumulative_duration);
+ .duration);
- // Round 2. Cumulative numbers should add up, others should be reset.
+ // Round 2. Numbers should be reset.
tracer->AddScopeSample(GCTracer::Scope::MC_INCREMENTAL_FINALIZE, 13);
tracer->AddScopeSample(GCTracer::Scope::MC_INCREMENTAL_FINALIZE, 15);
tracer->Start(MARK_COMPACTOR, GarbageCollectionReason::kTesting,
@@ -233,10 +237,61 @@ TEST_F(GCTracerTest, IncrementalMarkingDetails) {
.incremental_marking_scopes[GCTracer::Scope::MC_INCREMENTAL_FINALIZE]
.steps);
EXPECT_DOUBLE_EQ(
- 300,
+ 150,
tracer->current_
.incremental_marking_scopes[GCTracer::Scope::MC_INCREMENTAL_FINALIZE]
- .cumulative_duration);
+ .duration);
+}
+
+TEST_F(GCTracerTest, IncrementalMarkingSpeed) {
+ GCTracer* tracer = i_isolate()->heap()->tracer();
+ tracer->ResetForTesting();
+
+ // Round 1.
+ // 1000000 bytes in 100ms.
+ tracer->AddIncrementalMarkingStep(100, 1000000);
+ EXPECT_EQ(1000000 / 100,
+ tracer->IncrementalMarkingSpeedInBytesPerMillisecond());
+ // 1000000 bytes in 100ms.
+ tracer->AddIncrementalMarkingStep(100, 1000000);
+ EXPECT_EQ(1000000 / 100,
+ tracer->IncrementalMarkingSpeedInBytesPerMillisecond());
+ // Scavenger has no impact on incremental marking details.
+ tracer->Start(SCAVENGER, GarbageCollectionReason::kTesting,
+ "collector unittest");
+ tracer->Stop(SCAVENGER);
+ // 1000000 bytes in 100ms.
+ tracer->AddIncrementalMarkingStep(100, 1000000);
+ EXPECT_EQ(300, tracer->incremental_marking_duration_);
+ EXPECT_EQ(3000000, tracer->incremental_marking_bytes_);
+ EXPECT_EQ(1000000 / 100,
+ tracer->IncrementalMarkingSpeedInBytesPerMillisecond());
+ tracer->Start(MARK_COMPACTOR, GarbageCollectionReason::kTesting,
+ "collector unittest");
+ // Switch to incremental MC.
+ tracer->current_.type = GCTracer::Event::INCREMENTAL_MARK_COMPACTOR;
+ // 1000000 bytes in 100ms.
+ tracer->AddIncrementalMarkingStep(100, 1000000);
+ EXPECT_EQ(400, tracer->incremental_marking_duration_);
+ EXPECT_EQ(4000000, tracer->incremental_marking_bytes_);
+ tracer->Stop(MARK_COMPACTOR);
+ EXPECT_EQ(400, tracer->current_.incremental_marking_duration);
+ EXPECT_EQ(4000000, tracer->current_.incremental_marking_bytes);
+ EXPECT_EQ(0, tracer->incremental_marking_duration_);
+ EXPECT_EQ(0, tracer->incremental_marking_bytes_);
+ EXPECT_EQ(1000000 / 100,
+ tracer->IncrementalMarkingSpeedInBytesPerMillisecond());
+
+ // Round 2.
+ tracer->AddIncrementalMarkingStep(2000, 1000);
+ tracer->Start(MARK_COMPACTOR, GarbageCollectionReason::kTesting,
+ "collector unittest");
+ // Switch to incremental MC.
+ tracer->current_.type = GCTracer::Event::INCREMENTAL_MARK_COMPACTOR;
+ tracer->Stop(MARK_COMPACTOR);
+ EXPECT_DOUBLE_EQ((4000000.0 / 400 + 1000.0 / 2000) / 2,
+ static_cast<double>(
+ tracer->IncrementalMarkingSpeedInBytesPerMillisecond()));
}
} // namespace internal
« no previous file with comments | « src/heap/gc-tracer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698