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

Side by Side Diff: src/heap.h

Issue 397953012: Move node statistics from GCTracer to Heap. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « src/global-handles.cc ('k') | src/heap.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 // 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_H_ 5 #ifndef V8_HEAP_H_
6 #define V8_HEAP_H_ 6 #define V8_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 1164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1175 inline void IncrementPromotedObjectsSize(int object_size) { 1175 inline void IncrementPromotedObjectsSize(int object_size) {
1176 ASSERT(object_size > 0); 1176 ASSERT(object_size > 0);
1177 promoted_objects_size_ += object_size; 1177 promoted_objects_size_ += object_size;
1178 } 1178 }
1179 1179
1180 inline void IncrementSemiSpaceCopiedObjectSize(int object_size) { 1180 inline void IncrementSemiSpaceCopiedObjectSize(int object_size) {
1181 ASSERT(object_size > 0); 1181 ASSERT(object_size > 0);
1182 semi_space_copied_object_size_ += object_size; 1182 semi_space_copied_object_size_ += object_size;
1183 } 1183 }
1184 1184
1185 inline void IncrementNodesDiedInNewSpace() {
1186 nodes_died_in_new_space_++;
1187 }
1188
1189 inline void IncrementNodesCopiedInNewSpace() {
1190 nodes_copied_in_new_space_++;
1191 }
1192
1193 inline void IncrementNodesPromoted() {
1194 nodes_promoted_++;
1195 }
1196
1185 inline void IncrementYoungSurvivorsCounter(int survived) { 1197 inline void IncrementYoungSurvivorsCounter(int survived) {
1186 ASSERT(survived >= 0); 1198 ASSERT(survived >= 0);
1187 survived_since_last_expansion_ += survived; 1199 survived_since_last_expansion_ += survived;
1188 } 1200 }
1189 1201
1190 inline bool NextGCIsLikelyToBeFull() { 1202 inline bool NextGCIsLikelyToBeFull() {
1191 if (FLAG_gc_global) return true; 1203 if (FLAG_gc_global) return true;
1192 1204
1193 if (FLAG_stress_compaction && (gc_count_ & 1) != 0) return true; 1205 if (FLAG_stress_compaction && (gc_count_ & 1) != 0) return true;
1194 1206
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after
2019 static const int kYoungSurvivalRateHighThreshold = 90; 2031 static const int kYoungSurvivalRateHighThreshold = 90;
2020 static const int kYoungSurvivalRateAllowedDeviation = 15; 2032 static const int kYoungSurvivalRateAllowedDeviation = 15;
2021 2033
2022 static const int kOldSurvivalRateLowThreshold = 10; 2034 static const int kOldSurvivalRateLowThreshold = 10;
2023 2035
2024 int high_survival_rate_period_length_; 2036 int high_survival_rate_period_length_;
2025 intptr_t promoted_objects_size_; 2037 intptr_t promoted_objects_size_;
2026 double promotion_rate_; 2038 double promotion_rate_;
2027 intptr_t semi_space_copied_object_size_; 2039 intptr_t semi_space_copied_object_size_;
2028 double semi_space_copied_rate_; 2040 double semi_space_copied_rate_;
2041 int nodes_died_in_new_space_;
2042 int nodes_copied_in_new_space_;
2043 int nodes_promoted_;
2029 2044
2030 // This is the pretenuring trigger for allocation sites that are in maybe 2045 // This is the pretenuring trigger for allocation sites that are in maybe
2031 // tenure state. When we switched to the maximum new space size we deoptimize 2046 // tenure state. When we switched to the maximum new space size we deoptimize
2032 // the code that belongs to the allocation site and derive the lifetime 2047 // the code that belongs to the allocation site and derive the lifetime
2033 // of the allocation site. 2048 // of the allocation site.
2034 unsigned int maximum_size_scavenges_; 2049 unsigned int maximum_size_scavenges_;
2035 2050
2036 // TODO(hpayer): Allocation site pretenuring may make this method obsolete. 2051 // TODO(hpayer): Allocation site pretenuring may make this method obsolete.
2037 // Re-visit incremental marking heuristics. 2052 // Re-visit incremental marking heuristics.
2038 bool IsHighSurvivalRate() { 2053 bool IsHighSurvivalRate() {
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
2562 2577
2563 DISALLOW_COPY_AND_ASSIGN(Scope); 2578 DISALLOW_COPY_AND_ASSIGN(Scope);
2564 }; 2579 };
2565 2580
2566 explicit GCTracer(Heap* heap, 2581 explicit GCTracer(Heap* heap,
2567 GarbageCollector collector, 2582 GarbageCollector collector,
2568 const char* gc_reason, 2583 const char* gc_reason,
2569 const char* collector_reason); 2584 const char* collector_reason);
2570 ~GCTracer(); 2585 ~GCTracer();
2571 2586
2572 void increment_nodes_died_in_new_space() {
2573 nodes_died_in_new_space_++;
2574 }
2575
2576 void increment_nodes_copied_in_new_space() {
2577 nodes_copied_in_new_space_++;
2578 }
2579
2580 void increment_nodes_promoted() {
2581 nodes_promoted_++;
2582 }
2583
2584 private: 2587 private:
2585 // Returns a string matching the collector. 2588 // Returns a string matching the collector.
2586 const char* CollectorString() const; 2589 const char* CollectorString() const;
2587 2590
2588 // Print one detailed trace line in name=value format. 2591 // Print one detailed trace line in name=value format.
2589 void PrintNVP() const; 2592 void PrintNVP() const;
2590 2593
2591 // Print one trace line. 2594 // Print one trace line.
2592 void Print() const; 2595 void Print() const;
2593 2596
(...skipping 26 matching lines...) Expand all
2620 intptr_t in_free_list_or_wasted_before_gc_; 2623 intptr_t in_free_list_or_wasted_before_gc_;
2621 2624
2622 // Difference between space used in the heap at the beginning of the current 2625 // Difference between space used in the heap at the beginning of the current
2623 // collection and the end of the previous collection. 2626 // collection and the end of the previous collection.
2624 intptr_t allocated_since_last_gc_; 2627 intptr_t allocated_since_last_gc_;
2625 2628
2626 // Amount of time spent in mutator that is time elapsed between end of the 2629 // Amount of time spent in mutator that is time elapsed between end of the
2627 // previous collection and the beginning of the current one. 2630 // previous collection and the beginning of the current one.
2628 double spent_in_mutator_; 2631 double spent_in_mutator_;
2629 2632
2630 // Number of died nodes in the new space.
2631 int nodes_died_in_new_space_;
2632
2633 // Number of copied nodes to the new space.
2634 int nodes_copied_in_new_space_;
2635
2636 // Number of promoted nodes to the old space.
2637 int nodes_promoted_;
2638
2639 // Incremental marking steps counters. 2633 // Incremental marking steps counters.
2640 int steps_count_; 2634 int steps_count_;
2641 double steps_took_; 2635 double steps_took_;
2642 double longest_step_; 2636 double longest_step_;
2643 int steps_count_since_last_gc_; 2637 int steps_count_since_last_gc_;
2644 double steps_took_since_last_gc_; 2638 double steps_took_since_last_gc_;
2645 2639
2646 Heap* heap_; 2640 Heap* heap_;
2647 2641
2648 const char* gc_reason_; 2642 const char* gc_reason_;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
2787 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. 2781 DisallowHeapAllocation no_allocation; // i.e. no gc allowed.
2788 2782
2789 private: 2783 private:
2790 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); 2784 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer);
2791 }; 2785 };
2792 #endif // DEBUG 2786 #endif // DEBUG
2793 2787
2794 } } // namespace v8::internal 2788 } } // namespace v8::internal
2795 2789
2796 #endif // V8_HEAP_H_ 2790 #endif // V8_HEAP_H_
OLDNEW
« no previous file with comments | « src/global-handles.cc ('k') | src/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698