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 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
704 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(old_data_space) | 704 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(old_data_space) |
705 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(code_space) | 705 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(code_space) |
706 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(map_space) | 706 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(map_space) |
707 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(cell_space) | 707 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(cell_space) |
708 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(property_cell_space) | 708 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(property_cell_space) |
709 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(lo_space) | 709 UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE(lo_space) |
710 #undef UPDATE_COUNTERS_FOR_SPACE | 710 #undef UPDATE_COUNTERS_FOR_SPACE |
711 #undef UPDATE_FRAGMENTATION_FOR_SPACE | 711 #undef UPDATE_FRAGMENTATION_FOR_SPACE |
712 #undef UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE | 712 #undef UPDATE_COUNTERS_AND_FRAGMENTATION_FOR_SPACE |
713 | 713 |
714 #if defined(DEBUG) | 714 #ifdef DEBUG |
715 ReportStatisticsAfterGC(); | 715 ReportStatisticsAfterGC(); |
716 #endif // DEBUG | 716 #endif // DEBUG |
717 #ifdef ENABLE_DEBUGGER_SUPPORT | |
718 isolate_->debug()->AfterGarbageCollection(); | 717 isolate_->debug()->AfterGarbageCollection(); |
719 #endif // ENABLE_DEBUGGER_SUPPORT | |
720 } | 718 } |
721 | 719 |
722 | 720 |
723 void Heap::CollectAllGarbage(int flags, | 721 void Heap::CollectAllGarbage(int flags, |
724 const char* gc_reason, | 722 const char* gc_reason, |
725 const v8::GCCallbackFlags gc_callback_flags) { | 723 const v8::GCCallbackFlags gc_callback_flags) { |
726 // Since we are ignoring the return value, the exact choice of space does | 724 // Since we are ignoring the return value, the exact choice of space does |
727 // not matter, so long as we do not specify NEW_SPACE, which would not | 725 // not matter, so long as we do not specify NEW_SPACE, which would not |
728 // cause a full GC. | 726 // cause a full GC. |
729 mark_compact_collector_.SetFlags(flags); | 727 mark_compact_collector_.SetFlags(flags); |
(...skipping 4386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5116 v->VisitPointer(BitCast<Object**>(&hidden_string_)); | 5114 v->VisitPointer(BitCast<Object**>(&hidden_string_)); |
5117 v->Synchronize(VisitorSynchronization::kInternalizedString); | 5115 v->Synchronize(VisitorSynchronization::kInternalizedString); |
5118 | 5116 |
5119 isolate_->bootstrapper()->Iterate(v); | 5117 isolate_->bootstrapper()->Iterate(v); |
5120 v->Synchronize(VisitorSynchronization::kBootstrapper); | 5118 v->Synchronize(VisitorSynchronization::kBootstrapper); |
5121 isolate_->Iterate(v); | 5119 isolate_->Iterate(v); |
5122 v->Synchronize(VisitorSynchronization::kTop); | 5120 v->Synchronize(VisitorSynchronization::kTop); |
5123 Relocatable::Iterate(isolate_, v); | 5121 Relocatable::Iterate(isolate_, v); |
5124 v->Synchronize(VisitorSynchronization::kRelocatable); | 5122 v->Synchronize(VisitorSynchronization::kRelocatable); |
5125 | 5123 |
5126 #ifdef ENABLE_DEBUGGER_SUPPORT | |
5127 isolate_->debug()->Iterate(v); | 5124 isolate_->debug()->Iterate(v); |
5128 if (isolate_->deoptimizer_data() != NULL) { | 5125 if (isolate_->deoptimizer_data() != NULL) { |
5129 isolate_->deoptimizer_data()->Iterate(v); | 5126 isolate_->deoptimizer_data()->Iterate(v); |
5130 } | 5127 } |
5131 #endif | |
5132 v->Synchronize(VisitorSynchronization::kDebug); | 5128 v->Synchronize(VisitorSynchronization::kDebug); |
5133 isolate_->compilation_cache()->Iterate(v); | 5129 isolate_->compilation_cache()->Iterate(v); |
5134 v->Synchronize(VisitorSynchronization::kCompilationCache); | 5130 v->Synchronize(VisitorSynchronization::kCompilationCache); |
5135 | 5131 |
5136 // Iterate over local handles in handle scopes. | 5132 // Iterate over local handles in handle scopes. |
5137 isolate_->handle_scope_implementer()->Iterate(v); | 5133 isolate_->handle_scope_implementer()->Iterate(v); |
5138 isolate_->IterateDeferredHandles(v); | 5134 isolate_->IterateDeferredHandles(v); |
5139 v->Synchronize(VisitorSynchronization::kHandleScope); | 5135 v->Synchronize(VisitorSynchronization::kHandleScope); |
5140 | 5136 |
5141 // Iterate over the builtin code objects and code stubs in the | 5137 // Iterate over the builtin code objects and code stubs in the |
(...skipping 1540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6682 static_cast<int>(object_sizes_last_time_[index])); | 6678 static_cast<int>(object_sizes_last_time_[index])); |
6683 CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) | 6679 CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) |
6684 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 6680 #undef ADJUST_LAST_TIME_OBJECT_COUNT |
6685 | 6681 |
6686 OS::MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 6682 OS::MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); |
6687 OS::MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 6683 OS::MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); |
6688 ClearObjectStats(); | 6684 ClearObjectStats(); |
6689 } | 6685 } |
6690 | 6686 |
6691 } } // namespace v8::internal | 6687 } } // namespace v8::internal |
OLD | NEW |