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

Side by Side Diff: test/cctest/test-heap.cc

Issue 1167563005: Make old generation allocation throughput stats independent from the new space allocation throughpu… (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: cast Created 5 years, 6 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 unified diff | Download patch
« no previous file with comments | « src/heap/mark-compact.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 5790 matching lines...) Expand 10 before | Expand all | Expand 10 after
5801 } 5801 }
5802 5802
5803 5803
5804 TEST(OldSpaceAllocationCounter) { 5804 TEST(OldSpaceAllocationCounter) {
5805 CcTest::InitializeVM(); 5805 CcTest::InitializeVM();
5806 v8::HandleScope scope(CcTest::isolate()); 5806 v8::HandleScope scope(CcTest::isolate());
5807 Isolate* isolate = CcTest::i_isolate(); 5807 Isolate* isolate = CcTest::i_isolate();
5808 Heap* heap = isolate->heap(); 5808 Heap* heap = isolate->heap();
5809 size_t counter1 = heap->OldGenerationAllocationCounter(); 5809 size_t counter1 = heap->OldGenerationAllocationCounter();
5810 heap->CollectGarbage(NEW_SPACE); 5810 heap->CollectGarbage(NEW_SPACE);
5811 heap->CollectGarbage(NEW_SPACE);
5811 const size_t kSize = 1024; 5812 const size_t kSize = 1024;
5812 AllocateInSpace(isolate, kSize, OLD_SPACE); 5813 AllocateInSpace(isolate, kSize, OLD_SPACE);
5813 size_t counter2 = heap->OldGenerationAllocationCounter(); 5814 size_t counter2 = heap->OldGenerationAllocationCounter();
5814 // TODO(ulan): replace all CHECK_LE with CHECK_EQ after v8:4148 is fixed. 5815 // TODO(ulan): replace all CHECK_LE with CHECK_EQ after v8:4148 is fixed.
5815 CHECK_LE(kSize, counter2 - counter1); 5816 CHECK_LE(kSize, counter2 - counter1);
5816 heap->CollectGarbage(NEW_SPACE); 5817 heap->CollectGarbage(NEW_SPACE);
5817 size_t counter3 = heap->OldGenerationAllocationCounter(); 5818 size_t counter3 = heap->OldGenerationAllocationCounter();
5818 CHECK_EQ(0u, counter3 - counter2); 5819 CHECK_EQ(0u, counter3 - counter2);
5819 AllocateInSpace(isolate, kSize, OLD_SPACE); 5820 AllocateInSpace(isolate, kSize, OLD_SPACE);
5820 heap->CollectGarbage(OLD_SPACE); 5821 heap->CollectGarbage(OLD_SPACE);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5861 v8::HandleScope scope(CcTest::isolate()); 5862 v8::HandleScope scope(CcTest::isolate());
5862 Isolate* isolate = CcTest::i_isolate(); 5863 Isolate* isolate = CcTest::i_isolate();
5863 Heap* heap = isolate->heap(); 5864 Heap* heap = isolate->heap();
5864 GCTracer* tracer = heap->tracer(); 5865 GCTracer* tracer = heap->tracer();
5865 int time1 = 100; 5866 int time1 = 100;
5866 size_t counter1 = 1000; 5867 size_t counter1 = 1000;
5867 tracer->SampleAllocation(time1, counter1, 0); 5868 tracer->SampleAllocation(time1, counter1, 0);
5868 int time2 = 200; 5869 int time2 = 200;
5869 size_t counter2 = 2000; 5870 size_t counter2 = 2000;
5870 tracer->SampleAllocation(time2, counter2, 0); 5871 tracer->SampleAllocation(time2, counter2, 0);
5871 size_t throughput = tracer->AllocationThroughputInBytesPerMillisecond(100); 5872 size_t throughput =
5873 tracer->NewSpaceAllocationThroughputInBytesPerMillisecond(100);
5872 CHECK_EQ((counter2 - counter1) / (time2 - time1), throughput); 5874 CHECK_EQ((counter2 - counter1) / (time2 - time1), throughput);
5873 int time3 = 1000; 5875 int time3 = 1000;
5874 size_t counter3 = 30000; 5876 size_t counter3 = 30000;
5875 tracer->SampleAllocation(time3, counter3, 0); 5877 tracer->SampleAllocation(time3, counter3, 0);
5876 throughput = tracer->AllocationThroughputInBytesPerMillisecond(100); 5878 throughput = tracer->NewSpaceAllocationThroughputInBytesPerMillisecond(100);
5877 CHECK_EQ((counter3 - counter1) / (time3 - time1), throughput); 5879 CHECK_EQ((counter3 - counter1) / (time3 - time1), throughput);
5878 } 5880 }
5879 5881
5880 5882
5881 static void CheckLeak(const v8::FunctionCallbackInfo<v8::Value>& args) { 5883 static void CheckLeak(const v8::FunctionCallbackInfo<v8::Value>& args) {
5882 Isolate* isolate = CcTest::i_isolate(); 5884 Isolate* isolate = CcTest::i_isolate();
5883 Object* message = 5885 Object* message =
5884 *reinterpret_cast<Object**>(isolate->pending_message_obj_address()); 5886 *reinterpret_cast<Object**>(isolate->pending_message_obj_address());
5885 CHECK(message->IsTheHole()); 5887 CHECK(message->IsTheHole());
5886 } 5888 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
5925 v8::HandleScope scope(CcTest::isolate()); 5927 v8::HandleScope scope(CcTest::isolate());
5926 Isolate* isolate = CcTest::i_isolate(); 5928 Isolate* isolate = CcTest::i_isolate();
5927 Heap* heap = isolate->heap(); 5929 Heap* heap = isolate->heap();
5928 GCTracer* tracer = heap->tracer(); 5930 GCTracer* tracer = heap->tracer();
5929 int time1 = 100; 5931 int time1 = 100;
5930 size_t counter1 = 1000; 5932 size_t counter1 = 1000;
5931 tracer->SampleAllocation(time1, 0, counter1); 5933 tracer->SampleAllocation(time1, 0, counter1);
5932 int time2 = 200; 5934 int time2 = 200;
5933 size_t counter2 = 2000; 5935 size_t counter2 = 2000;
5934 tracer->SampleAllocation(time2, 0, counter2); 5936 tracer->SampleAllocation(time2, 0, counter2);
5935 size_t throughput = tracer->AllocationThroughputInBytesPerMillisecond(100); 5937 size_t throughput =
5938 tracer->OldGenerationAllocationThroughputInBytesPerMillisecond(100);
5936 CHECK_EQ((counter2 - counter1) / (time2 - time1), throughput); 5939 CHECK_EQ((counter2 - counter1) / (time2 - time1), throughput);
5937 int time3 = 1000; 5940 int time3 = 1000;
5938 size_t counter3 = 30000; 5941 size_t counter3 = 30000;
5939 tracer->SampleAllocation(time3, 0, counter3); 5942 tracer->SampleAllocation(time3, 0, counter3);
5940 throughput = tracer->AllocationThroughputInBytesPerMillisecond(100); 5943 throughput =
5944 tracer->OldGenerationAllocationThroughputInBytesPerMillisecond(100);
5941 CHECK_EQ((counter3 - counter1) / (time3 - time1), throughput); 5945 CHECK_EQ((counter3 - counter1) / (time3 - time1), throughput);
5942 } 5946 }
5943 5947
5944 5948
5945 TEST(AllocationThroughput) { 5949 TEST(AllocationThroughput) {
5946 CcTest::InitializeVM(); 5950 CcTest::InitializeVM();
5947 v8::HandleScope scope(CcTest::isolate()); 5951 v8::HandleScope scope(CcTest::isolate());
5948 Isolate* isolate = CcTest::i_isolate(); 5952 Isolate* isolate = CcTest::i_isolate();
5949 Heap* heap = isolate->heap(); 5953 Heap* heap = isolate->heap();
5950 GCTracer* tracer = heap->tracer(); 5954 GCTracer* tracer = heap->tracer();
5951 int time1 = 100; 5955 int time1 = 100;
5952 size_t counter1 = 1000; 5956 size_t counter1 = 1000;
5953 tracer->SampleAllocation(time1, counter1, counter1); 5957 tracer->SampleAllocation(time1, counter1, counter1);
5954 int time2 = 200; 5958 int time2 = 200;
5955 size_t counter2 = 2000; 5959 size_t counter2 = 2000;
5956 tracer->SampleAllocation(time2, counter2, counter2); 5960 tracer->SampleAllocation(time2, counter2, counter2);
5957 size_t throughput = tracer->AllocationThroughputInBytesPerMillisecond(100); 5961 size_t throughput = tracer->AllocationThroughputInBytesPerMillisecond(100);
5958 CHECK_EQ(2 * (counter2 - counter1) / (time2 - time1), throughput); 5962 CHECK_EQ(2 * (counter2 - counter1) / (time2 - time1), throughput);
5959 int time3 = 1000; 5963 int time3 = 1000;
5960 size_t counter3 = 30000; 5964 size_t counter3 = 30000;
5961 tracer->SampleAllocation(time3, counter3, counter3); 5965 tracer->SampleAllocation(time3, counter3, counter3);
5962 throughput = tracer->AllocationThroughputInBytesPerMillisecond(100); 5966 throughput = tracer->AllocationThroughputInBytesPerMillisecond(100);
5963 CHECK_EQ(2 * (counter3 - counter1) / (time3 - time1), throughput); 5967 CHECK_EQ(2 * (counter3 - counter1) / (time3 - time1), throughput);
5964 } 5968 }
OLDNEW
« no previous file with comments | « src/heap/mark-compact.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698