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

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

Issue 1853783002: [heap] Non-contiguous young generation (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Hannes comment Created 4 years, 8 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/spaces-inl.h ('k') | test/cctest/heap/test-spaces.cc » ('j') | 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 2315 matching lines...) Expand 10 before | Expand all | Expand 10 after
2326 CHECK(heap->InNewSpace(*factory->NewFixedArray(32, NOT_TENURED))); 2326 CHECK(heap->InNewSpace(*factory->NewFixedArray(32, NOT_TENURED)));
2327 } 2327 }
2328 } 2328 }
2329 2329
2330 2330
2331 TEST(GrowAndShrinkNewSpace) { 2331 TEST(GrowAndShrinkNewSpace) {
2332 CcTest::InitializeVM(); 2332 CcTest::InitializeVM();
2333 Heap* heap = CcTest::heap(); 2333 Heap* heap = CcTest::heap();
2334 NewSpace* new_space = heap->new_space(); 2334 NewSpace* new_space = heap->new_space();
2335 2335
2336 if (heap->ReservedSemiSpaceSize() == heap->InitialSemiSpaceSize() || 2336 if (heap->MaxSemiSpaceSize() == heap->InitialSemiSpaceSize()) {
2337 heap->MaxSemiSpaceSize() == heap->InitialSemiSpaceSize()) {
2338 // The max size cannot exceed the reserved size, since semispaces must be
2339 // always within the reserved space. We can't test new space growing and
2340 // shrinking if the reserved size is the same as the minimum (initial) size.
2341 return; 2337 return;
2342 } 2338 }
2343 2339
2344 // Explicitly growing should double the space capacity. 2340 // Explicitly growing should double the space capacity.
2345 intptr_t old_capacity, new_capacity; 2341 intptr_t old_capacity, new_capacity;
2346 old_capacity = new_space->TotalCapacity(); 2342 old_capacity = new_space->TotalCapacity();
2347 new_space->Grow(); 2343 new_space->Grow();
2348 new_capacity = new_space->TotalCapacity(); 2344 new_capacity = new_space->TotalCapacity();
2349 CHECK(2 * old_capacity == new_capacity); 2345 CHECK(2 * old_capacity == new_capacity);
2350 2346
(...skipping 24 matching lines...) Expand all
2375 new_space->Shrink(); 2371 new_space->Shrink();
2376 new_space->Shrink(); 2372 new_space->Shrink();
2377 new_capacity = new_space->TotalCapacity(); 2373 new_capacity = new_space->TotalCapacity();
2378 CHECK(old_capacity == new_capacity); 2374 CHECK(old_capacity == new_capacity);
2379 } 2375 }
2380 2376
2381 2377
2382 TEST(CollectingAllAvailableGarbageShrinksNewSpace) { 2378 TEST(CollectingAllAvailableGarbageShrinksNewSpace) {
2383 CcTest::InitializeVM(); 2379 CcTest::InitializeVM();
2384 Heap* heap = CcTest::heap(); 2380 Heap* heap = CcTest::heap();
2385 if (heap->ReservedSemiSpaceSize() == heap->InitialSemiSpaceSize() || 2381 if (heap->MaxSemiSpaceSize() == heap->InitialSemiSpaceSize()) {
2386 heap->MaxSemiSpaceSize() == heap->InitialSemiSpaceSize()) {
2387 // The max size cannot exceed the reserved size, since semispaces must be
2388 // always within the reserved space. We can't test new space growing and
2389 // shrinking if the reserved size is the same as the minimum (initial) size.
2390 return; 2382 return;
2391 } 2383 }
2392 2384
2393 v8::HandleScope scope(CcTest::isolate()); 2385 v8::HandleScope scope(CcTest::isolate());
2394 NewSpace* new_space = heap->new_space(); 2386 NewSpace* new_space = heap->new_space();
2395 intptr_t old_capacity, new_capacity; 2387 intptr_t old_capacity, new_capacity;
2396 old_capacity = new_space->TotalCapacity(); 2388 old_capacity = new_space->TotalCapacity();
2397 new_space->Grow(); 2389 new_space->Grow();
2398 new_capacity = new_space->TotalCapacity(); 2390 new_capacity = new_space->TotalCapacity();
2399 CHECK(2 * old_capacity == new_capacity); 2391 CHECK(2 * old_capacity == new_capacity);
(...skipping 4207 matching lines...) Expand 10 before | Expand all | Expand 10 after
6607 heap->RightTrimFixedArray<Heap::CONCURRENT_TO_SWEEPER>(arrays[j], N - 1); 6599 heap->RightTrimFixedArray<Heap::CONCURRENT_TO_SWEEPER>(arrays[j], N - 1);
6608 } 6600 }
6609 } 6601 }
6610 // Force allocation from the free list. 6602 // Force allocation from the free list.
6611 heap->set_force_oom(true); 6603 heap->set_force_oom(true);
6612 heap->CollectGarbage(OLD_SPACE); 6604 heap->CollectGarbage(OLD_SPACE);
6613 } 6605 }
6614 6606
6615 } // namespace internal 6607 } // namespace internal
6616 } // namespace v8 6608 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/spaces-inl.h ('k') | test/cctest/heap/test-spaces.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698