>  기사  >  백엔드 개발  >  왜 C에는 가비지 수집 기능이 없나요?

왜 C에는 가비지 수집 기능이 없나요?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 18:21:30623검색

Why Doesn't C   Have Garbage Collection?

C에 가비지 수집이 부족한 이유

C에 가비지 수집이 최종적으로 포함될 것이라고 예측한 Bjarne Stroustrup의 통찰력에도 불구하고 언어에는 해당 기능이 없습니다. . 이로 인해 부재에 대한 문의가 촉발되었습니다.

원래 C의 디자인은 자동 메모리 관리보다 성능을 우선시했습니다. 그러나 언어가 발전하면서 가비지 수집이 점차 주목을 받게 되었습니다. C 0x에 선택적 기능으로 포함되면서 표준 구성 요소가 될 것이라는 가정이 나타났습니다.

구현 및 합의의 어려움

세 번째 구성 요소의 가용성에도 불구하고 -파티 가비지 수집기, 이 기능을 C의 핵심에 통합하는 것은 어려운 것으로 입증되었습니다. Bjarne Stroustrup 자신도 "기술적 문제"로 인해 C 0x에서 구현이 불가능하다고 말하면서 이러한 장애를 인정했습니다.

C 커뮤니티 간의 합의 부족으로 인해 가비지 수집의 진행이 더욱 방해되었습니다. 오늘날까지도 이 주제는 양측 지지자들이 각자의 주장을 펼치는 등 논쟁의 대상으로 남아 있습니다.

암시적 가비지 수집과 명시적 가비지 수집

C는 지원하지 않습니다. 암시적 가비지 수집은 shared_ptr 및 Boost:shared_ptr을 통해 명시적인 메커니즘을 제공합니다. 이러한 스마트 포인터를 사용하면 수동 메모리 관리가 가능해 프로그래머가 객체의 수명을 명시적으로 제어할 수 있습니다.

C의 효율성에 대한 강조와 경쟁 환경은 암시적 가비지 수집을 꺼리는 데 일조했습니다. 편의성과 성능 사이의 트레이드 오프로 간주되며 C의 디자인 철학은 후자를 우선시했습니다.

향후 전망

암시적 가비지 수집은 여전히 ​​잠재적인 대상입니다. 미래의 C 사양을 위해. 그러나 포함 여부는 기술적, 철학적 과제의 해결 여부에 달려 있습니다. C 커뮤니티가 계속 발전함에 따라 효율적이고 편리한 메모리 관리에 대한 요구로 인해 장기적으로 암시적 가비지 수집 구현이 추진될 수 있습니다.

위 내용은 왜 C에는 가비지 수집 기능이 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.