GC.GetGeneration이 Int32.MaxValue를 반환할 수 있음
.NET 8부터 GC.GetGeneration은 비GC 힙("고정" 힙이라고도 함)에 할당된 개체에 대해 Int32.MaxValue를 반환할 수 있습니다. 이전에는 2를 반환했습니다. 런타임이 비GC 힙에 개체를 할당하는 시기와 방법은 내부 구현 정보입니다. 예를 들어 문자열 리터럴은 비GC 힙에 할당되며 다음 메서드 호출은 Int32.MaxValue를 반환할 수 있습니다.
int gen = GC.GetGeneration("string");
이전 동작
이전에는 GC.GetGeneration이 0~2 범위의 정수 값을 반환했습니다.
새 동작
.NET 8부터 GC.GetGeneration은 0, 1, 2 또는 Int32.MaxValue 값을 반환할 수 있습니다.
도입된 버전
.NET 8 미리 보기 4
호환성이 손상되는 변경의 형식
이 변경 사항은 동작 변경입니다.
변경 이유
.NET은 기존 힙인 LOH(큰 개체 힙), SOH(작은 개체 힙), POH(고정된 개체 힙)와 약간 다른 새로운 비GC 힙을 도입했습니다.
권장 작업
GC.GetGeneration()
의 반환 값을 배열 인덱서로 사용하거나 Int32.MaxValue가 예상되지 않는 다른 항목에 사용하지 않아야 합니다.
영향을 받는 API
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기