▲neo 8달전 | parent | favorite | on: GN⁺: 시스템 프로그래머를 위한 가비지 컬렉션 (2023)(bitbashing.io)Hacker News 의견 MPL과 MaPLe에 대한 혁신적인 병렬 가비지 컬렉션(GC) 기술을 확인하라는 제안 POPL 2024에서 뛰어난 논문상과 ACM SIGPLAN 2023년 논문상을 수상함 주요 제안 사항은 다음과 같음: 증명 가능한 효율적인 병렬 가비지 컬렉션 기반의 'disentanglement' 증명 가능한 효율적인 자동 세분성 제어 RCU를 가비지 컬렉션의 동기로 사용하는 것은 흥미로움 쓰기 작업자로부터 마지막 읽기 작업자에게 메모리 해제 책임을 이전하는 것이 의미 있음 성능 향상을 위해 메모리 해제를 읽기 작업자가 아닌 전용 배치 프로세스로 이전하는 것을 고려해야 할 수도 있음 메모리 관리에 대한 일반적인 오해 프로그래머가 메모리 관리를 위한 최적의 일시 중지 시간을 알고 있다고 믿음 게임과 암호화폐 거래 프로그램에서는 프로그래머가 실제로 최적의 일시 중지 시간을 알고 있을 수 있음 RCU 사용 사례는 설득력이 있지만, 다른 상황에서의 가비지 컬렉션 경험은 좋지 않음 맞춤형 메모리 관리 솔루션이 최상의 성능을 제공할 수 있다는 주장으로 읽힘 free() 호출이 메모리를 OS에게 반환한다는 오해에 대한 논의 가비지 컬렉션을 사용하면 새로운 할당이 캐시가 아닌 RAM에서 이루어짐 성능에 큰 영향을 미칠 수 있음 Julia 언어에서의 벤치마크 예시 제공 좋은 추적 가비지 컬렉션은 오래전에 수동 메모리 관리를 처리량 측면에서 능가함 최근에는 대부분의 애플리케이션에 대해 지연 시간이 수용 가능한 수준임 메모리 사용량이 주요 고려 사항임 가비지 컬렉션과 잘 어울리는 것 중 하나는 async/await Rust에서 async/await 사용은 메모리 관리와 결합하여 문제를 일으킴 RCU에 대한 동기 부여 후 일반적인 가비지 컬렉션에 대한 논의로 전환하는 것은 다소 놀라움 소프트웨어 개발 시 두 가지 경우를 고려함 핫 패스의 경우 맞춤형 할당자를 사용하고, 그 외의 경우에는 가비지 컬렉션이 편리함 RCU에서 일반적인 추적 가비지 컬렉션으로의 전환은 교묘한 전략으로 보임 수동 메모리 관리는 단순히 malloc/free 호출 이상의 것을 포함함 시스템 프로그래머가 언제 가비지 컬렉션될 수 있는지 식별하는 것이 어려움 Rust와 C++의 생명주기 관리 도구는 메모리 해제 자동화에 도움을 주지만, 복잡성을 단순화하지는 않음
Hacker News 의견
MPL과 MaPLe에 대한 혁신적인 병렬 가비지 컬렉션(GC) 기술을 확인하라는 제안
RCU를 가비지 컬렉션의 동기로 사용하는 것은 흥미로움
메모리 관리에 대한 일반적인 오해
RCU 사용 사례는 설득력이 있지만, 다른 상황에서의 가비지 컬렉션 경험은 좋지 않음
free()
호출이 메모리를 OS에게 반환한다는 오해에 대한 논의가비지 컬렉션을 사용하면 새로운 할당이 캐시가 아닌 RAM에서 이루어짐
좋은 추적 가비지 컬렉션은 오래전에 수동 메모리 관리를 처리량 측면에서 능가함
가비지 컬렉션과 잘 어울리는 것 중 하나는 async/await
RCU에 대한 동기 부여 후 일반적인 가비지 컬렉션에 대한 논의로 전환하는 것은 다소 놀라움
소프트웨어 개발 시 두 가지 경우를 고려함
RCU에서 일반적인 추적 가비지 컬렉션으로의 전환은 교묘한 전략으로 보임
시스템 프로그래머가 언제 가비지 컬렉션될 수 있는지 식별하는 것이 어려움
Rust와 C++의 생명주기 관리 도구는 메모리 해제 자동화에 도움을 주지만, 복잡성을 단순화하지는 않음