| 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 8dc41fb6d2601499bd8599a5b775cf43bbaabc04..2bf4d037d3ba4eaaee8975458e3d7224c54ec992 100644
|
| --- a/test/unittests/heap/gc-tracer-unittest.cc
|
| +++ b/test/unittests/heap/gc-tracer-unittest.cc
|
| @@ -5,16 +5,11 @@
|
| #include <cmath>
|
| #include <limits>
|
|
|
| -#include "src/globals.h"
|
| #include "src/heap/gc-tracer.h"
|
| -#include "src/isolate.h"
|
| -#include "test/unittests/test-utils.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace v8 {
|
| namespace internal {
|
| -
|
| -typedef TestWithContext GCTracerTest;
|
|
|
| TEST(GCTracer, AverageSpeed) {
|
| RingBuffer<BytesAndDuration> buffer;
|
| @@ -50,141 +45,5 @@
|
| GCTracer::AverageSpeed(buffer, MakeBytesAndDuration(0, 0), buffer.kSize));
|
| }
|
|
|
| -namespace {
|
| -
|
| -void SampleAndAddAllocaton(v8::internal::GCTracer* tracer, double time_ms,
|
| - size_t new_space_counter_bytes,
|
| - size_t old_generation_counter_bytes) {
|
| - tracer->SampleAllocation(time_ms, new_space_counter_bytes,
|
| - old_generation_counter_bytes);
|
| - tracer->AddAllocation(time_ms);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -TEST_F(GCTracerTest, AllocationThroughput) {
|
| - GCTracer* tracer = i_isolate()->heap()->tracer();
|
| - tracer->ResetForTesting();
|
| -
|
| - int time1 = 100;
|
| - size_t counter1 = 1000;
|
| - // First sample creates baseline but is not part of the recorded samples.
|
| - tracer->SampleAllocation(time1, counter1, counter1);
|
| - SampleAndAddAllocaton(tracer, time1, counter1, counter1);
|
| - int time2 = 200;
|
| - size_t counter2 = 2000;
|
| - SampleAndAddAllocaton(tracer, time2, counter2, counter2);
|
| - // Will only consider the current sample.
|
| - size_t throughput = static_cast<size_t>(
|
| - tracer->AllocationThroughputInBytesPerMillisecond(100));
|
| - EXPECT_EQ(2 * (counter2 - counter1) / (time2 - time1), throughput);
|
| - int time3 = 1000;
|
| - size_t counter3 = 30000;
|
| - SampleAndAddAllocaton(tracer, time3, counter3, counter3);
|
| - // Considers last 2 samples.
|
| - throughput = tracer->AllocationThroughputInBytesPerMillisecond(801);
|
| - EXPECT_EQ(2 * (counter3 - counter1) / (time3 - time1), throughput);
|
| -}
|
| -
|
| -TEST_F(GCTracerTest, NewSpaceAllocationThroughput) {
|
| - GCTracer* tracer = i_isolate()->heap()->tracer();
|
| - tracer->ResetForTesting();
|
| -
|
| - int time1 = 100;
|
| - size_t counter1 = 1000;
|
| - SampleAndAddAllocaton(tracer, time1, counter1, 0);
|
| - int time2 = 200;
|
| - size_t counter2 = 2000;
|
| - SampleAndAddAllocaton(tracer, time2, counter2, 0);
|
| - size_t throughput =
|
| - tracer->NewSpaceAllocationThroughputInBytesPerMillisecond();
|
| - EXPECT_EQ((counter2 - counter1) / (time2 - time1), throughput);
|
| - int time3 = 1000;
|
| - size_t counter3 = 30000;
|
| - SampleAndAddAllocaton(tracer, time3, counter3, 0);
|
| - throughput = tracer->NewSpaceAllocationThroughputInBytesPerMillisecond();
|
| - EXPECT_EQ((counter3 - counter1) / (time3 - time1), throughput);
|
| -}
|
| -
|
| -TEST_F(GCTracerTest, NewSpaceAllocationThroughputWithProvidedTime) {
|
| - GCTracer* tracer = i_isolate()->heap()->tracer();
|
| - tracer->ResetForTesting();
|
| -
|
| - int time1 = 100;
|
| - size_t counter1 = 1000;
|
| - // First sample creates baseline but is not part of the recorded samples.
|
| - SampleAndAddAllocaton(tracer, time1, counter1, 0);
|
| - int time2 = 200;
|
| - size_t counter2 = 2000;
|
| - SampleAndAddAllocaton(tracer, time2, counter2, 0);
|
| - // Will only consider the current sample.
|
| - size_t throughput =
|
| - tracer->NewSpaceAllocationThroughputInBytesPerMillisecond(100);
|
| - EXPECT_EQ((counter2 - counter1) / (time2 - time1), throughput);
|
| - int time3 = 1000;
|
| - size_t counter3 = 30000;
|
| - SampleAndAddAllocaton(tracer, time3, counter3, 0);
|
| - // Considers last 2 samples.
|
| - throughput = tracer->NewSpaceAllocationThroughputInBytesPerMillisecond(801);
|
| - EXPECT_EQ((counter3 - counter1) / (time3 - time1), throughput);
|
| -}
|
| -
|
| -TEST_F(GCTracerTest, OldGenerationAllocationThroughputWithProvidedTime) {
|
| - GCTracer* tracer = i_isolate()->heap()->tracer();
|
| - tracer->ResetForTesting();
|
| -
|
| - int time1 = 100;
|
| - size_t counter1 = 1000;
|
| - // First sample creates baseline but is not part of the recorded samples.
|
| - SampleAndAddAllocaton(tracer, time1, 0, counter1);
|
| - int time2 = 200;
|
| - size_t counter2 = 2000;
|
| - SampleAndAddAllocaton(tracer, time2, 0, counter2);
|
| - // Will only consider the current sample.
|
| - size_t throughput = static_cast<size_t>(
|
| - tracer->OldGenerationAllocationThroughputInBytesPerMillisecond(100));
|
| - EXPECT_EQ((counter2 - counter1) / (time2 - time1), throughput);
|
| - int time3 = 1000;
|
| - size_t counter3 = 30000;
|
| - SampleAndAddAllocaton(tracer, time3, 0, counter3);
|
| - // Considers last 2 samples.
|
| - throughput = static_cast<size_t>(
|
| - tracer->OldGenerationAllocationThroughputInBytesPerMillisecond(801));
|
| - EXPECT_EQ((counter3 - counter1) / (time3 - time1), throughput);
|
| -}
|
| -
|
| -TEST_F(GCTracerTest, RegularScope) {
|
| - GCTracer* tracer = i_isolate()->heap()->tracer();
|
| -
|
| - {
|
| - // Sample not added because it's not within a started tracer.
|
| - tracer->AddScopeSample(GCTracer::Scope::MC_MARK, 100);
|
| - }
|
| - tracer->Start(MARK_COMPACTOR, "gc unittest", "collector unittest");
|
| - { tracer->AddScopeSample(GCTracer::Scope::MC_MARK, 100); }
|
| - tracer->Stop(MARK_COMPACTOR);
|
| - EXPECT_EQ(
|
| - static_cast<size_t>(tracer->current_.scopes[GCTracer::Scope::MC_MARK]),
|
| - 100u);
|
| -}
|
| -
|
| -TEST_F(GCTracerTest, IncrementalScope) {
|
| - GCTracer* tracer = i_isolate()->heap()->tracer();
|
| -
|
| - {
|
| - // Sample is added because its ScopeId is listed as incremental sample.
|
| - tracer->AddScopeSample(GCTracer::Scope::MC_INCREMENTAL_FINALIZE, 100);
|
| - }
|
| - tracer->Start(MARK_COMPACTOR, "gc unittest", "collector unittest");
|
| - // Switch to incremental MC to enable writing back incremental scopes.
|
| - tracer->current_.type = GCTracer::Event::INCREMENTAL_MARK_COMPACTOR;
|
| - { tracer->AddScopeSample(GCTracer::Scope::MC_INCREMENTAL_FINALIZE, 100); }
|
| - tracer->Stop(MARK_COMPACTOR);
|
| - EXPECT_EQ(
|
| - static_cast<size_t>(
|
| - tracer->current_.scopes[GCTracer::Scope::MC_INCREMENTAL_FINALIZE]),
|
| - 200u);
|
| -}
|
| -
|
| } // namespace internal
|
| } // namespace v8
|
|
|