GC 구현 자의 설계에 따르면 무효화로 GC 속도를 높일 수는 없습니다 . 나는 그들이 어떻게 / GC가 실행될 때 자신을 걱정하지 선호하는 거라고 확신 해요 - 유비쿼터스와 같은 대접을 존재가 당신을 위해 밖으로 ... (활 머리를 아래로, 하늘에 주먹을 제기) 보호 이상보고 .. .
개인적으로, 나는 종종 자체 문서화의 형태로 변수를 완성했을 때 변수를 명시 적으로 null로 설정합니다. 선언하고 사용하지 않고 나중에 null로 설정하지 않습니다. 더 이상 필요하지 않으면 즉시 null입니다. 나는 "공식적으로 당신과 함께하고 ... 사라 졌어 ..."
GC 언어로 무효화해야합니까? 아니요. GC에 도움이 되나요? 어쩌면 예, 아마도 아니오, 확실하지 않습니다. 설계 상 실제로 제어 할 수 없으며이 버전에 대한 오늘의 답변이나 미래의 GC 구현에 관계없이 미래의 GC 구현은 내 통제 범위를 벗어나 답변을 변경할 수 있습니다. 또한 널링이 최적화 된 경우에는 멋진 의견에 지나지 않습니다.
나는 발자취를 따르는 다음 가난한 바보에게 내 의도를 더 명확하게 만들고 그것이 때때로 GC에 도움 이 될 수 있다면 나에게 가치가 있다고 생각합니다. 대부분 깔끔하고 깨끗하게 느끼고 몽고는 깔끔하고 깨끗하게 느끼기를 좋아합니다. :)
나는 이것을 다음과 같이 본다 : 프로그래밍 언어는 사람들이 다른 사람들에게 의도에 대한 아이디어와 컴파일러에게 무엇을해야하는지에 대한 작업 요청을 주도록한다-컴파일러는 그 요청을 CPU에 대해 다른 언어로 (때로는 여러 언어로) 변환한다- CPU는 사용하는 언어, 탭 설정, 주석, 문체 강조, 변수 이름 등을 알려줄 수 있습니다. CPU에는 비트 스트림에 관한 모든 것이 있으며 레지스터 및 opcode 및 트위스트 할 메모리 위치를 알려줍니다. 코드로 작성된 많은 것들이 우리가 지정한 순서대로 CPU가 소비하는 것으로 변환되지 않습니다. 우리의 C, C ++, C #, Lisp, Babel, 어셈블러 또는 실제보다는 이론이 무엇이든, 작업 진술로 작성되었습니다. 당신이 보는 것은 그렇습니다. 어셈블러 언어조차도 아닙니다.
"빈 줄과 같은"필요하지 않은 것 "의 사고 방식은"잡음과 혼란스러운 코드 일뿐 "입니다. 저의 경력 초기에 저였습니다. 나는 그것을 완전히 얻는다. 이 시점에서 나는 코드를 더 명확하게 만드는쪽으로 기울었다. 프로그램에 50 줄의 "노이즈"를 추가하는 것과는 다릅니다. 여기 저기 몇 줄 있습니다.
규칙에는 예외가 있습니다. 휘발성 메모리, 정적 메모리, 경쟁 조건, 싱글 톤, "스톨 (stale)"데이터 사용 및 모든 종류의 썩음이 발생하는 시나리오는 다릅니다. 메모리는 자신의 메모리에 속하지 않기 때문에 자신의 메모리를 관리하고, 제안으로 잠금 및 무효화해야합니다. GC'd 우주-잘만되면 모든 사람들이 그것을 이해합니다. GC 언어로 된 나머지 시간은 필요하거나 보장 된 성능 향상보다는 스타일의 문제입니다.
하루가 끝나면 GC에 적합한 대상과 그렇지 않은 대상을 이해해야합니다. 적절하게 잠금, 폐기 및 무효화; 왁스 온, 왁스 오프; 숨을들이 쉬고 내쉬세요; 그리고 내가 말하는 다른 모든 것에 대해 : 기분이 좋으면 그렇게하십시오. 마일리지는 다를 수 있습니다 ...