Files
2nd/01_Archive/2026-04-20/Stop-the-world.md
T

4.2 KiB

id, category, confidence_score, tags, last_reinforced, github_commit
id category confidence_score tags last_reinforced github_commit
P-REINFORCE-AUTO-D2D9B2 10_Wiki/💡 Topics/Programming & Language 0.90
auto-reinforced
2026-04-20 [P-Reinforce] Continuous Worker - 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, 힙 메모리(Heap Memory), Orinoco, Mark-Sweep
  • Projects/Contexts: 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