답변
가비지 수집의 장점은 은이 너무 많거나 전혀 걱정하지 않는다는 것입니다. 낮은 수준의 구현은 (미리 또는 즉석에서) 더 쉽게 계획 할 수 있으며, 메모리를 확보 할 필요가 없으므로 복잡한 문제를 걱정할 시간이 많습니다.
가비지 수집을 활용할 때 유의해야 할 몇 가지 사항이 있지만 일반적으로 쉽거나 직관적입니다. 몇 예 :
당신은 순환 참조가 (물론 관리 관련된 모든 자원만큼) 더 어떤 정말 문제 아니라는 사실을 활용하기 위해 당신의 생각을 변경해야 할 수도 있습니다. 이것은 익숙해지기 매우 쉽고 재미 있습니다!
가능한 가장 낮은 범위에서 변수를 정의하면 도움이됩니다. 하지만 어쨌든 을하고 싶습니다..
그래서, 당신이 관리되는 메모리가없는 곳에서 .NET으로 이동하는 경우, 예, GC에 대해 조금 읽을 수 있지만 자신이 그것에 대해 점의 생각하지 찾을 경우,하지 걱정.
편집 : 관리되지 않는 리소스를 .NET에서 계속 사용할 수 있습니다. 많은 공통 .NET 네임 스페이스에서도 관리되지 않는 리소스가 아래에 사용됩니다. .Dispose()
(해당하는 Using
키워드)은 관리되지 않는 메모리를 사용하고 있다는 단서로 이해해야합니다. (see me blab about that here.)
Unmanged code는 어떨까요? – SmartestVEGA
@SmartestVEGA : C# + VB.NET 태그를 사용하여 지정했습니다. –
.net 개발자 인터뷰에서 가비지 수집에 대해 너무 많이 강조하고 있습니다. – SmartestVEGA
일상 업무에서 쓰레기 수거에 관한 주요 관심사는 우리가 좋은 수위 관리 서비스를 제공하고 있다는 것입니다. ;)
정말 대다수의 LOB 응용 프로그램에서는 가비지 수집에 대해 걱정할 필요가 없을 것입니다. 성능 문제가 있고 성능 관련 문제 또는 메모리 누수가 발생했음을 프로파일 링에 표시하는 경우 다음은 GC perf에서 보는입니다. 일반적인 LOB 앱에서는 드문 경우입니다.
.net 개발자 인터뷰에서 본 내용은 가비지 수집에 대해 너무 많은 것을 강조하고 있습니다. ..! – SmartestVEGA
@SmartestVEGA : 정말 직업에 달려 있습니다. 나는 하루 종일 일하는 동안 GC에 대해 잘 알고 있지만, 나는 과학적 소프트웨어로 일한다. 문제는 매우 중요합니다. 기업 LOB의 경우 거의 문제되지 않습니다. .NET은 이것에 아주 좋습니다 - 일반적으로 메모리 문제를 완전히 무시할 수 있으며 정상적으로 작동합니다. –
@SmartestVEGA 여기서 인터뷰를 많이 보았을 때, 그들이 스트레스를받는 이유를 이해하는 데 도움이 될 수 있습니다. 위의 모든 것들과 마찬가지로, GC에 대한 가장 좋은 점은 당신이 그것에 대해 많이 걱정할 필요가 없다는 것입니다. 그러나 새로운 클래스를 디자인 할 때 어떤 객체/리소스가 처분/마무리 함수에서 처리해야 할 수도 있음을 명심하십시오 – spacemonkeys
대부분의 경우 GC에 대해 신경 쓰지 않아도됩니다. 걱정할 필요가 있다면 아마 기본 코딩 문제 (실수로 정적 이벤트 등을 통해 객체 참조 유출)가 발생했음을 의미합니다.
문제가있을 때 것으로 처리하고 메모리 프로파일 러를 사용하여 문제를 찾아 수정하십시오.
GC에 대해 알아야 할 주요 사항은 만병 통치약이 아니라는 것입니다. 메모리에 해당하며 메모리는과 비슷합니다. 리소스는 제한적이지만 꽤 많이 공급되며 이에 상응하는 리소스 인스턴스는 서로 바꿔서 사용할 수 있습니다. 예를 들어 두 개의 1MB 메모리 버퍼가 모두 필요한만큼 좋습니다. 그들과 함께.
임시 파일은 메모리와 비슷하며 파일 핸들은 메모리와 비슷하지만 파일 핸들은 특정 핸들 값이 무엇인지 상관하지 않지만 파일 자체는 파일이며 파일 잠금 그렇지 않은가? 그들은 그들이 연관되어있는 고유 한 의미있는 이름을 가지고있다. 따라서 당신은 당신이 그 (것)들을 청소할 때 정확하게주의 깊게 가지고 간다. 일반적으로 임의의 시간에 GC가 파일 잠금을 닫거나 특정 파일을 삭제하도록 할 수 없습니다. 그러나 임시 파일을 사용하여이를 수행 할 수 있습니다.
- 1. 풀 쓰레기 수거 전략
- 2. 문자열 및 쓰레기 수거
- 3. 왜 쓰레기 수거 되나요?
- 4. 크롬 메모리/쓰레기 수거 문제
- 5. 쓰레기 수거 문제 (표시 목록 + 액션 스크립트)
- 6. 젠드 프레임 워크 - 데이터베이스에 값을 입력하지 않음 - 쓰레기 수거
- 7. Liftweb 환경의 백그라운드 작업
- 8. NSWorkspace notificationCenter 내가 잘못 여기서 뭔가 일을 해요 경우 잘 모르겠어요 쓰레기 수거
- 9. 프리즘보기가 다음과 같은 코드를 마이크로 소프트의보기 주입 샘플/기사에서는 사출 발표자 및 쓰레기 수거
- 10. WinDbg - 개체가 메모리에 있지만 쓰레기 수거 대기 중인지 어떻게 알 수 있습니까?
- 11. glbuffersubdata는, 쓰레기
- 12. Eclipse의 출력이 쓰레기
- 13. 왼쪽 피연산자는 쓰레기 값
- 14. , 드문 경우에 쓰레기 데이터있다
- 15. 쓰레기 처리 방법의 안전성?
- 16. 표현의 수신기가 쓰레기 값입니다.
- 17. 노드는 ... 쓰레기 값
- 18. URL에있는 ASP.NET MVC2 쓰레기
- 19. windbg 힙에서 출력되는 쓰레기 요약
- 20. ActiveRecord의 연결 수거 방법을 비공개로 설정하는 방법
- 21. 쓰레기 수집기 및 마무리() 메소드는
- 22. Java에서 쓰레기 문제가 너무 많습니다.
- 23. "쓰레기 어댑터 패턴"이란 무엇입니까?
- 24. AS3 : 쓰레기 수거량이 너무 큽니까?
- 25. 클러스터 환경의 싱글 톤
- 26. 멀티 스트레칭 환경의 스케줄러
- 27. 런타임 환경의 역할은 무엇입니까?
- 28. windows7 환경의 qt
- 29. N 계층 환경의 Elmah
- 30. Windows 환경의 PHP Vista
질문에 대해 자세히 설명해야한다고 생각합니다. (나는 꽤 느리다.) – ChaosPandion
단지 알고 싶은 것, 당신은 일하는 삶에서 일상적인 쓰레기 수거에 대해 무엇을하고 있니? – SmartestVEGA
고객에게 직접 전달되는 대신 명세서를 명확히하기 위해 BA에 갈 때마다 : 나는 이것을 가비지 수집으로 생각합니다. –