OLD | NEW |
---|---|
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 943 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
954 new_space_.Capacity() > new_space_.InitialCapacity()) { | 954 new_space_.Capacity() > new_space_.InitialCapacity()) { |
955 new_space_.Shrink(); | 955 new_space_.Shrink(); |
956 } | 956 } |
957 | 957 |
958 isolate_->counters()->objs_since_last_young()->Set(0); | 958 isolate_->counters()->objs_since_last_young()->Set(0); |
959 | 959 |
960 gc_post_processing_depth_++; | 960 gc_post_processing_depth_++; |
961 { DisableAssertNoAllocation allow_allocation; | 961 { DisableAssertNoAllocation allow_allocation; |
962 GCTracer::Scope scope(tracer, GCTracer::Scope::EXTERNAL); | 962 GCTracer::Scope scope(tracer, GCTracer::Scope::EXTERNAL); |
963 next_gc_likely_to_collect_more = | 963 next_gc_likely_to_collect_more = |
964 isolate_->global_handles()->PostGarbageCollectionProcessing(collector); | 964 isolate_->global_handles()->PostGarbageCollectionProcessing( |
965 collector, tracer); | |
965 } | 966 } |
966 gc_post_processing_depth_--; | 967 gc_post_processing_depth_--; |
967 | 968 |
968 // Update relocatables. | 969 // Update relocatables. |
969 Relocatable::PostGarbageCollectionProcessing(); | 970 Relocatable::PostGarbageCollectionProcessing(); |
970 | 971 |
971 if (collector == MARK_COMPACTOR) { | 972 if (collector == MARK_COMPACTOR) { |
972 // Register the amount of external allocated memory. | 973 // Register the amount of external allocated memory. |
973 amount_of_external_allocated_memory_at_last_global_gc_ = | 974 amount_of_external_allocated_memory_at_last_global_gc_ = |
974 amount_of_external_allocated_memory_; | 975 amount_of_external_allocated_memory_; |
(...skipping 6070 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7045 const char* gc_reason, | 7046 const char* gc_reason, |
7046 const char* collector_reason) | 7047 const char* collector_reason) |
7047 : start_time_(0.0), | 7048 : start_time_(0.0), |
7048 start_object_size_(0), | 7049 start_object_size_(0), |
7049 start_memory_size_(0), | 7050 start_memory_size_(0), |
7050 gc_count_(0), | 7051 gc_count_(0), |
7051 full_gc_count_(0), | 7052 full_gc_count_(0), |
7052 allocated_since_last_gc_(0), | 7053 allocated_since_last_gc_(0), |
7053 spent_in_mutator_(0), | 7054 spent_in_mutator_(0), |
7054 promoted_objects_size_(0), | 7055 promoted_objects_size_(0), |
7056 died_nodes_in_new_space_(0), | |
7057 copied_nodes_in_new_space_(0), | |
7058 promoted_nodes_(0), | |
7055 heap_(heap), | 7059 heap_(heap), |
7056 gc_reason_(gc_reason), | 7060 gc_reason_(gc_reason), |
7057 collector_reason_(collector_reason) { | 7061 collector_reason_(collector_reason) { |
7058 if (!FLAG_trace_gc && !FLAG_print_cumulative_gc_stat) return; | 7062 if (!FLAG_trace_gc && !FLAG_print_cumulative_gc_stat) return; |
7059 start_time_ = OS::TimeCurrentMillis(); | 7063 start_time_ = OS::TimeCurrentMillis(); |
7060 start_object_size_ = heap_->SizeOfObjects(); | 7064 start_object_size_ = heap_->SizeOfObjects(); |
7061 start_memory_size_ = heap_->isolate()->memory_allocator()->Size(); | 7065 start_memory_size_ = heap_->isolate()->memory_allocator()->Size(); |
7062 | 7066 |
7063 for (int i = 0; i < Scope::kNumberOfScopes; i++) { | 7067 for (int i = 0; i < Scope::kNumberOfScopes; i++) { |
7064 scopes_[i] = 0; | 7068 scopes_[i] = 0; |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7185 static_cast<int>(scopes_[Scope::MC_UPDATE_MISC_POINTERS])); | 7189 static_cast<int>(scopes_[Scope::MC_UPDATE_MISC_POINTERS])); |
7186 | 7190 |
7187 PrintF("total_size_before=%" V8_PTR_PREFIX "d ", start_object_size_); | 7191 PrintF("total_size_before=%" V8_PTR_PREFIX "d ", start_object_size_); |
7188 PrintF("total_size_after=%" V8_PTR_PREFIX "d ", heap_->SizeOfObjects()); | 7192 PrintF("total_size_after=%" V8_PTR_PREFIX "d ", heap_->SizeOfObjects()); |
7189 PrintF("holes_size_before=%" V8_PTR_PREFIX "d ", | 7193 PrintF("holes_size_before=%" V8_PTR_PREFIX "d ", |
7190 in_free_list_or_wasted_before_gc_); | 7194 in_free_list_or_wasted_before_gc_); |
7191 PrintF("holes_size_after=%" V8_PTR_PREFIX "d ", CountTotalHolesSize()); | 7195 PrintF("holes_size_after=%" V8_PTR_PREFIX "d ", CountTotalHolesSize()); |
7192 | 7196 |
7193 PrintF("allocated=%" V8_PTR_PREFIX "d ", allocated_since_last_gc_); | 7197 PrintF("allocated=%" V8_PTR_PREFIX "d ", allocated_since_last_gc_); |
7194 PrintF("promoted=%" V8_PTR_PREFIX "d ", promoted_objects_size_); | 7198 PrintF("promoted=%" V8_PTR_PREFIX "d ", promoted_objects_size_); |
7199 PrintF("died_nodes_in_new=%" V8_PTR_PREFIX "d ", died_nodes_in_new_space_); | |
7200 PrintF("copied_nodes_in_new=%" V8_PTR_PREFIX "d ", copied_nodes_in_new_space _); | |
Michael Starzinger
2012/12/05 14:26:14
More than 80 characters.
haraken
2012/12/06 11:08:15
Done.
| |
7201 PrintF("promoted_nodes=%" V8_PTR_PREFIX "d ", promoted_nodes_); | |
7195 | 7202 |
7196 if (collector_ == SCAVENGER) { | 7203 if (collector_ == SCAVENGER) { |
7197 PrintF("stepscount=%d ", steps_count_since_last_gc_); | 7204 PrintF("stepscount=%d ", steps_count_since_last_gc_); |
7198 PrintF("stepstook=%d ", static_cast<int>(steps_took_since_last_gc_)); | 7205 PrintF("stepstook=%d ", static_cast<int>(steps_took_since_last_gc_)); |
7199 } else { | 7206 } else { |
7200 PrintF("stepscount=%d ", steps_count_); | 7207 PrintF("stepscount=%d ", steps_count_); |
7201 PrintF("stepstook=%d ", static_cast<int>(steps_took_)); | 7208 PrintF("stepstook=%d ", static_cast<int>(steps_took_)); |
7202 } | 7209 } |
7203 | 7210 |
7204 PrintF("\n"); | 7211 PrintF("\n"); |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7473 static_cast<int>(object_sizes_last_time_[index])); | 7480 static_cast<int>(object_sizes_last_time_[index])); |
7474 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(ADJUST_LAST_TIME_OBJECT_COUNT) | 7481 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(ADJUST_LAST_TIME_OBJECT_COUNT) |
7475 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 7482 #undef ADJUST_LAST_TIME_OBJECT_COUNT |
7476 | 7483 |
7477 memcpy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 7484 memcpy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); |
7478 memcpy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 7485 memcpy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); |
7479 ClearObjectStats(); | 7486 ClearObjectStats(); |
7480 } | 7487 } |
7481 | 7488 |
7482 } } // namespace v8::internal | 7489 } } // namespace v8::internal |
OLD | NEW |