---
id: P-REINFORCE-AUTO-D2D9B2
category: "10_Wiki/💡 Topics/Programming & Language"
confidence_score: 0.90
tags: [auto-reinforced]
last_reinforced: 2026-04-20
github_commit: "[P-Reinforce] Continuous Worker - Stop-the-world"
---

# [[Stop-the-world|Stop-the-world]]

## 📌 한 줄 통찰 (The Karpathy Summary)
> 'Stop-the-world'(STW)는 가비지 컬렉션(GC)이 실행되는 동안 메모리를 정리하기 위해 애플리케이션의 실행이 일시적으로 완전히 중단되는 현상을 의미합니다 [1, 2]. 가비지 컬렉터가 힙(Heap) 메모리에 대한 배타적 접근 권한을 얻어야 하므로 애플리케이션 스레드가 멈추게 됩니다 [1, 3]. 이로 인해 발생하는 지연(Latency)과 화면 끊김(Jank)을 줄이기 위해 현대의 GC 알고리즘들은 STW 시간을 최소화하거나 회피하는 병렬 및 동시 처리 방식으로 발전하고 있습니다 [2, 4, 5].

## 📖 구조화된 지식 (Synthesized Content)
* **원인 및 메커니즘**
  가비지 컬렉터가 더 이상 사용되지 않는 객체를 정리하고 메모리를 재사용하기 위해서는 힙 영역에 배타적으로 접근해야 하며, 이 과정에서 애플리케이션은 처리 작업이 완료될 때까지 정지(halt)해야 합니다 [1]. V8 엔진의 경우, 자바스크립트 실행을 멈추고 메인 스레드에서 순차적으로 GC 작업을 수행하는 것이 가장 직관적인 STW 방식입니다 [2, 6]. 

* **성능에 미치는 영향**
  STW 중단 시간이 길어지면 애플리케이션의 성능 저하를 초래합니다. 특히 메인 스레드에 지연과 화면 끊김(Jank) 현상을 유발하여 사용자 경험을 떨어뜨리고 전체 프로그램의 처리량(Throughput)을 감소시킵니다 [2]. GC 로그에서 긴 'Duration' 값은 긴 STW 중단을 나타냅니다 [7]. V8에서 병렬(Parallel) 기법을 사용하더라도 이는 본질적으로 'stop-the-world' 방식이며 자바스크립트 실행이 멈추게 되지만, 총 중단 시간을 스레드 수로 나누어 줄일 수 있습니다 [8].

* **주요 발생 시점**
  * 스위프(Sweep) 작업이나 마크(Mark) 단계가 배타적 접근 권한을 가지고 실행될 때 STW 중단이 발생합니다 [3, 9].
  * IBM JVM의 'gencon' 정책에서는 'nursery' 영역을 정리하는 스캐빈지(Scavenge) 작업이나 글로벌 사이클의 초기 및 최종 마크 단계가 짧은 STW 중단 동안 실행됩니다 [10].
  * 동시 마크(Concurrent mark) 작업을 사용하더라도 메모리가 고갈되어 스위프 작업이 시작될 때나, 루트 객체를 다시 스캔할 때는 STW 중단이 필요합니다 [9].

* **STW 완화 및 회피 기법**
  * **점진적 및 동시 처리:** 점진적 동시 마크(Incremental concurrent mark processing) 처리는 글로벌 STW 가비지 컬렉션을 피함으로써 중단 시간을 고르게 분산시킵니다 [4]. 
  * **Orinoco 가비지 컬렉터:** V8 엔진의 최신 가비지 컬렉터인 Orinoco는 기존의 'stop-the-world' 휴식 모델에서 벗어나, 메인 스레드의 부하를 줄이기 위해 병렬(Parallel), 점진적(Incremental), 동시(Concurrent) 스위핑 및 마킹 기술을 도입했습니다 [5, 11].

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.

## 🔗 지식 연결 (Graph)
- **Related Topics:** [[Garbage Collection|Garbage Collection]], [[힙 메모리(Heap Memory)|Heap Memory]], [[Orinoco|Orinoco]], [[Mark-Sweep|Mark-Sweep]]
- **Projects/Contexts:** [[V8 JavaScript Engine|V8 JavaScript Engine]], IBM Java Virtual Machine (VM)
- **Contradictions/Notes:** 제공된 소스들 사이에서 내용 상의 모순은 없으며, V8 엔진과 IBM JVM 환경 모두에서 가비지 컬렉션 중 발생하는 'Stop-the-world'의 기본 개념과 이를 최적화(병렬, 동시, 점진적 처리)하여 일시 정지 시간을 줄이려는 공통된 발전 방향을 보여줍니다 [3-5, 8].

---
*Last updated: 2026-04-19*
- Raw Source: 00_Raw/2026-04-20/Stop-the-world.md
---
