OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_HEAP_HEAP_H_ | 5 #ifndef V8_HEAP_HEAP_H_ |
6 #define V8_HEAP_HEAP_H_ | 6 #define V8_HEAP_HEAP_H_ |
7 | 7 |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 1488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1499 Isolate* isolate_; | 1499 Isolate* isolate_; |
1500 | 1500 |
1501 Object* roots_[kRootListLength]; | 1501 Object* roots_[kRootListLength]; |
1502 | 1502 |
1503 size_t code_range_size_; | 1503 size_t code_range_size_; |
1504 int reserved_semispace_size_; | 1504 int reserved_semispace_size_; |
1505 int max_semi_space_size_; | 1505 int max_semi_space_size_; |
1506 int initial_semispace_size_; | 1506 int initial_semispace_size_; |
1507 int target_semispace_size_; | 1507 int target_semispace_size_; |
1508 intptr_t max_old_generation_size_; | 1508 intptr_t max_old_generation_size_; |
1509 intptr_t initial_old_generation_size_; | |
1510 bool old_generation_size_configured_; | |
1511 intptr_t max_executable_size_; | 1509 intptr_t max_executable_size_; |
1512 intptr_t maximum_committed_; | 1510 intptr_t maximum_committed_; |
1513 | 1511 |
1514 // For keeping track of how much data has survived | 1512 // For keeping track of how much data has survived |
1515 // scavenge since last new space expansion. | 1513 // scavenge since last new space expansion. |
1516 int survived_since_last_expansion_; | 1514 int survived_since_last_expansion_; |
1517 | 1515 |
1518 // ... and since the last scavenge. | 1516 // ... and since the last scavenge. |
1519 int survived_last_scavenge_; | 1517 int survived_last_scavenge_; |
1520 | 1518 |
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1988 | 1986 |
1989 void UpdateSurvivalStatistics(int start_new_space_size); | 1987 void UpdateSurvivalStatistics(int start_new_space_size); |
1990 | 1988 |
1991 static const int kYoungSurvivalRateHighThreshold = 90; | 1989 static const int kYoungSurvivalRateHighThreshold = 90; |
1992 static const int kYoungSurvivalRateAllowedDeviation = 15; | 1990 static const int kYoungSurvivalRateAllowedDeviation = 15; |
1993 | 1991 |
1994 static const int kOldSurvivalRateLowThreshold = 10; | 1992 static const int kOldSurvivalRateLowThreshold = 10; |
1995 | 1993 |
1996 int high_survival_rate_period_length_; | 1994 int high_survival_rate_period_length_; |
1997 intptr_t promoted_objects_size_; | 1995 intptr_t promoted_objects_size_; |
1998 double promotion_ratio_; | |
1999 double promotion_rate_; | 1996 double promotion_rate_; |
2000 intptr_t semi_space_copied_object_size_; | 1997 intptr_t semi_space_copied_object_size_; |
2001 intptr_t previous_semi_space_copied_object_size_; | |
2002 double semi_space_copied_rate_; | 1998 double semi_space_copied_rate_; |
2003 int nodes_died_in_new_space_; | 1999 int nodes_died_in_new_space_; |
2004 int nodes_copied_in_new_space_; | 2000 int nodes_copied_in_new_space_; |
2005 int nodes_promoted_; | 2001 int nodes_promoted_; |
2006 | 2002 |
2007 // This is the pretenuring trigger for allocation sites that are in maybe | 2003 // This is the pretenuring trigger for allocation sites that are in maybe |
2008 // tenure state. When we switched to the maximum new space size we deoptimize | 2004 // tenure state. When we switched to the maximum new space size we deoptimize |
2009 // the code that belongs to the allocation site and derive the lifetime | 2005 // the code that belongs to the allocation site and derive the lifetime |
2010 // of the allocation site. | 2006 // of the allocation site. |
2011 unsigned int maximum_size_scavenges_; | 2007 unsigned int maximum_size_scavenges_; |
2012 | 2008 |
2013 // TODO(hpayer): Allocation site pretenuring may make this method obsolete. | 2009 // TODO(hpayer): Allocation site pretenuring may make this method obsolete. |
2014 // Re-visit incremental marking heuristics. | 2010 // Re-visit incremental marking heuristics. |
2015 bool IsHighSurvivalRate() { return high_survival_rate_period_length_ > 0; } | 2011 bool IsHighSurvivalRate() { return high_survival_rate_period_length_ > 0; } |
2016 | 2012 |
2017 void ConfigureInitialOldGenerationSize(); | |
2018 | |
2019 void SelectScavengingVisitorsTable(); | 2013 void SelectScavengingVisitorsTable(); |
2020 | 2014 |
2021 void IdleMarkCompact(const char* message); | 2015 void IdleMarkCompact(const char* message); |
2022 | 2016 |
2023 bool TryFinalizeIdleIncrementalMarking( | 2017 bool TryFinalizeIdleIncrementalMarking( |
2024 double idle_time_in_ms, size_t size_of_objects, | 2018 double idle_time_in_ms, size_t size_of_objects, |
2025 size_t mark_compact_speed_in_bytes_per_ms); | 2019 size_t mark_compact_speed_in_bytes_per_ms); |
2026 | 2020 |
2027 bool WorthActivatingIncrementalMarking(); | 2021 bool WorthActivatingIncrementalMarking(); |
2028 | 2022 |
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2594 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2588 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2595 | 2589 |
2596 private: | 2590 private: |
2597 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2591 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2598 }; | 2592 }; |
2599 #endif // DEBUG | 2593 #endif // DEBUG |
2600 } | 2594 } |
2601 } // namespace v8::internal | 2595 } // namespace v8::internal |
2602 | 2596 |
2603 #endif // V8_HEAP_HEAP_H_ | 2597 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |