Lines Matching refs:heap_

26 PartialGC::PartialGC(Heap *heap) : heap_(heap), workManager_(heap->GetWorkManager()) {}
30 GCStats *gcStats = heap_->GetEcmaVM()->GetEcmaGCStats();
31 ECMA_BYTRACE_NAME(HITRACE_TAG_ARK, "PartialGC::RunPhases" + std::to_string(heap_->IsConcurrentFullMark())
33 + ";Sensitive" + std::to_string(static_cast<int>(heap_->GetSensitiveStatus()))
34 + ";IsInBackground" + std::to_string(heap_->IsInBackground())
35 + ";Startup" + std::to_string(heap_->OnStartupEvent())
36 + ";ConMark" + std::to_string(static_cast<int>(heap_->GetJSThread()->GetMarkStatus()))
37 + ";Young" + std::to_string(heap_->GetNewSpace()->GetCommittedSize())
38 + ";Old" + std::to_string(heap_->GetOldSpace()->GetCommittedSize())
39 + ";TotalCommit" + std::to_string(heap_->GetCommittedSize()));
41 MEM_ALLOCATE_AND_GC_TRACE(heap_->GetEcmaVM(), PartialGC_RunPhases);
42 bool mainThreadInForeground = heap_->GetJSThread()->IsMainThreadFast() && !heap_->IsInBackground();
43 bool needAjustGCThreadPrio = heap_->GetGCType() == TriggerGCType::OLD_GC ||
44 heap_->GetNewSpace()->GetCommittedSize() >= heap_->GetNewSpace()->GetMaximumCapacity();
48 markingInProgress_ = heap_->CheckOngoingConcurrentMarking();
52 if (UNLIKELY(heap_->ShouldVerifyHeap())) {
53 Verification::VerifyMark(heap_);
58 if (heap_->IsConcurrentFullMark()) {
59 heap_->GetSweeper()->PostTask();
61 if (UNLIKELY(heap_->ShouldVerifyHeap())) {
62 Verification::VerifyEvacuate(heap_);
73 TRACE_GC(GCStats::Scope::ScopeId::Initialize, heap_->GetEcmaVM()->GetEcmaGCStats());
74 if (!markingInProgress_ && !heap_->GetIncrementalMarker()->IsTriggeredIncrementalMark()) {
76 heap_->Prepare();
77 if (heap_->IsConcurrentFullMark()) {
78 heap_->GetOldSpace()->SelectCSet();
79 heap_->GetAppSpawnSpace()->EnumerateRegions([](Region *current) {
83 heap_->EnumerateNonNewSpaceRegions([](Region *current) {
91 oldSpaceCommitSize_ = heap_->GetOldSpace()->GetCommittedSize();
92 nonMoveSpaceCommitSize_ = heap_->GetNonMovableSpace()->GetCommittedSize();
99 TRACE_GC(GCStats::Scope::ScopeId::Finish, heap_->GetEcmaVM()->GetEcmaGCStats());
100 heap_->Resume(OLD_GC);
101 if (heap_->GetIncrementalMarker()->IsTriggeredIncrementalMark()) {
102 heap_->GetIncrementalMarker()->Reset();
104 auto marker = heap_->GetConcurrentMarker();
109 if (heap_->IsConcurrentFullMark()) {
110 heap_->GetSweeper()->TryFillSweptRegion();
111 heap_->SetFullMarkRequestedState(false);
118 TRACE_GC(GCStats::Scope::ScopeId::Mark, heap_->GetEcmaVM()->GetEcmaGCStats());
120 heap_->GetConcurrentMarker()->ReMark();
123 heap_->GetNonMovableMarker()->MarkRoots(MAIN_THREAD_INDEX);
124 if (heap_->IsConcurrentFullMark()) {
125 heap_->GetNonMovableMarker()->ProcessMarkStack(MAIN_THREAD_INDEX);
126 } else if (heap_->IsEdenMark()) {
129 heap_->GetNonMovableMarker()->ProcessOldToNew(MAIN_THREAD_INDEX);
133 heap_->GetNonMovableMarker()->ProcessNewToEden(MAIN_THREAD_INDEX);
135 heap_->GetNonMovableMarker()->ProcessSnapshotRSet(MAIN_THREAD_INDEX);
136 } else if (heap_->IsYoungMark()) {
139 heap_->GetNonMovableMarker()->ProcessOldToNew(MAIN_THREAD_INDEX);
141 heap_->GetNonMovableMarker()->ProcessSnapshotRSet(MAIN_THREAD_INDEX);
143 heap_->WaitRunningTaskFinished();
145 heap_->GetNonMovableMarker()->MarkJitCodeMap(MAIN_THREAD_INDEX);
152 if (heap_->IsConcurrentFullMark()) {
153 heap_->GetOldSpace()->EnumerateRegions([](Region *current) {
156 TRACE_GC(GCStats::Scope::ScopeId::Sweep, heap_->GetEcmaVM()->GetEcmaGCStats());
157 heap_->GetSweeper()->Sweep();
164 TRACE_GC(GCStats::Scope::ScopeId::ClearNativeObject, heap_->GetEcmaVM()->GetEcmaGCStats());
168 if (heap_->IsEdenMark() && !objectRegion->InEdenSpace()) {
171 if (!objectRegion->InGeneralNewSpaceOrCSet() && heap_->IsYoungMark()) {
179 heap_->GetEcmaVM()->ProcessNativeDelete(gcUpdateWeak);
185 TRACE_GC(GCStats::Scope::ScopeId::Evacuate, heap_->GetEcmaVM()->GetEcmaGCStats());
186 heap_->GetEvacuator()->Evacuate();
191 TRACE_GC(GCStats::Scope::ScopeId::ProcessSharedGCRSetWorkList, heap_->GetEcmaVM()->GetEcmaGCStats());
192 heap_->ProcessSharedGCRSetWorkList();