OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <cmath> | 5 #include <cmath> |
6 #include <iostream> | 6 #include <iostream> |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "src/objects.h" | 9 #include "src/objects.h" |
10 #include "src/objects-inl.h" | 10 #include "src/objects-inl.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 | 26 |
27 void CheckEqualRounded(double expected, double actual) { | 27 void CheckEqualRounded(double expected, double actual) { |
28 expected = Round(expected); | 28 expected = Round(expected); |
29 actual = Round(actual); | 29 actual = Round(actual); |
30 EXPECT_DOUBLE_EQ(expected, actual); | 30 EXPECT_DOUBLE_EQ(expected, actual); |
31 } | 31 } |
32 | 32 |
33 | 33 |
34 TEST(Heap, HeapGrowingFactor) { | 34 TEST(Heap, HeapGrowingFactor) { |
35 CheckEqualRounded(Heap::kMaxHeapGrowingFactor, | 35 CheckEqualRounded(Heap::kMaxHeapGrowingFactor, |
36 Heap::HeapGrowingFactor(34, 1)); | 36 Heap::HeapGrowingFactor(34, 1, 4.0)); |
37 CheckEqualRounded(3.553, Heap::HeapGrowingFactor(45, 1)); | 37 CheckEqualRounded(3.553, Heap::HeapGrowingFactor(45, 1, 4.0)); |
38 CheckEqualRounded(2.830, Heap::HeapGrowingFactor(50, 1)); | 38 CheckEqualRounded(2.830, Heap::HeapGrowingFactor(50, 1, 4.0)); |
39 CheckEqualRounded(1.478, Heap::HeapGrowingFactor(100, 1)); | 39 CheckEqualRounded(1.478, Heap::HeapGrowingFactor(100, 1, 4.0)); |
40 CheckEqualRounded(1.193, Heap::HeapGrowingFactor(200, 1)); | 40 CheckEqualRounded(1.193, Heap::HeapGrowingFactor(200, 1, 4.0)); |
41 CheckEqualRounded(1.121, Heap::HeapGrowingFactor(300, 1)); | 41 CheckEqualRounded(1.121, Heap::HeapGrowingFactor(300, 1, 4.0)); |
42 CheckEqualRounded(Heap::HeapGrowingFactor(300, 1), | 42 CheckEqualRounded(Heap::HeapGrowingFactor(300, 1, 4.0), |
43 Heap::HeapGrowingFactor(600, 2)); | 43 Heap::HeapGrowingFactor(600, 2, 4.0)); |
44 CheckEqualRounded(Heap::kMinHeapGrowingFactor, | 44 CheckEqualRounded(Heap::kMinHeapGrowingFactor, |
45 Heap::HeapGrowingFactor(400, 1)); | 45 Heap::HeapGrowingFactor(400, 1, 4.0)); |
| 46 } |
| 47 |
| 48 TEST(Heap, MaxHeapGrowingFactor) { |
| 49 CheckEqualRounded( |
| 50 1.3, Heap::MaxHeapGrowingFactor(Heap::kMinOldGenerationSize * MB)); |
| 51 CheckEqualRounded( |
| 52 1.600, Heap::MaxHeapGrowingFactor(Heap::kMaxOldGenerationSize / 2 * MB)); |
| 53 CheckEqualRounded( |
| 54 1.999, |
| 55 Heap::MaxHeapGrowingFactor( |
| 56 (Heap::kMaxOldGenerationSize - Heap::kPointerMultiplier) * MB)); |
| 57 CheckEqualRounded(4.0, |
| 58 Heap::MaxHeapGrowingFactor( |
| 59 static_cast<size_t>(Heap::kMaxOldGenerationSize) * MB)); |
46 } | 60 } |
47 | 61 |
48 TEST(Heap, SemiSpaceSize) { | 62 TEST(Heap, SemiSpaceSize) { |
49 uint64_t configurations[][2] = { | 63 uint64_t configurations[][2] = { |
50 {0, 1 * i::Heap::kPointerMultiplier}, | 64 {0, 1 * i::Heap::kPointerMultiplier}, |
51 {512 * i::MB, 1 * i::Heap::kPointerMultiplier}, | 65 {512 * i::MB, 1 * i::Heap::kPointerMultiplier}, |
52 {1 * i::GB, 3 * i::Heap::kPointerMultiplier}, | 66 {1 * i::GB, 3 * i::Heap::kPointerMultiplier}, |
53 {2 * static_cast<uint64_t>(i::GB), i::Heap::kMaxSemiSpaceSize}, | 67 {2 * static_cast<uint64_t>(i::GB), i::Heap::kMaxSemiSpaceSize}, |
54 {4 * static_cast<uint64_t>(i::GB), i::Heap::kMaxSemiSpaceSize}, | 68 {4 * static_cast<uint64_t>(i::GB), i::Heap::kMaxSemiSpaceSize}, |
55 {8 * static_cast<uint64_t>(i::GB), i::Heap::kMaxSemiSpaceSize}}; | 69 {8 * static_cast<uint64_t>(i::GB), i::Heap::kMaxSemiSpaceSize}}; |
56 | 70 |
57 for (auto configuration : configurations) { | 71 for (auto configuration : configurations) { |
58 ASSERT_EQ(configuration[1], | 72 ASSERT_EQ(configuration[1], |
59 static_cast<uint64_t>( | 73 static_cast<uint64_t>( |
60 i::Heap::ComputeMaxSemiSpaceSize(configuration[0]))); | 74 i::Heap::ComputeMaxSemiSpaceSize(configuration[0]))); |
61 } | 75 } |
62 } | 76 } |
63 | 77 |
64 TEST(Heap, OldGenerationSize) { | 78 TEST(Heap, OldGenerationSize) { |
65 uint64_t configurations[][2] = { | 79 uint64_t configurations[][2] = { |
66 {0, i::Heap::kMinOldSpaceSize}, | 80 {0, i::Heap::kMinOldGenerationSize}, |
67 {512, i::Heap::kMinOldSpaceSize}, | 81 {512, i::Heap::kMinOldGenerationSize}, |
68 {1 * i::GB, 256 * i::Heap::kPointerMultiplier}, | 82 {1 * i::GB, 256 * i::Heap::kPointerMultiplier}, |
69 {2 * static_cast<uint64_t>(i::GB), 512 * i::Heap::kPointerMultiplier}, | 83 {2 * static_cast<uint64_t>(i::GB), 512 * i::Heap::kPointerMultiplier}, |
70 {4 * static_cast<uint64_t>(i::GB), i::Heap::kMaxOldSpaceSize}, | 84 {4 * static_cast<uint64_t>(i::GB), i::Heap::kMaxOldGenerationSize}, |
71 {8 * static_cast<uint64_t>(i::GB), i::Heap::kMaxOldSpaceSize}}; | 85 {8 * static_cast<uint64_t>(i::GB), i::Heap::kMaxOldGenerationSize}}; |
72 | 86 |
73 for (auto configuration : configurations) { | 87 for (auto configuration : configurations) { |
74 ASSERT_EQ(configuration[1], | 88 ASSERT_EQ(configuration[1], |
75 static_cast<uint64_t>( | 89 static_cast<uint64_t>( |
76 i::Heap::ComputeMaxOldGenerationSize(configuration[0]))); | 90 i::Heap::ComputeMaxOldGenerationSize(configuration[0]))); |
77 } | 91 } |
78 } | 92 } |
79 | 93 |
80 } // namespace internal | 94 } // namespace internal |
81 } // namespace v8 | 95 } // namespace v8 |
OLD | NEW |