관리되지 않는 개체에 Add/RemoveMemoryPressure를 사용하는 올바른 방법은 무엇입니까? 관리되지 않는 개체가 있지만 STL 컨테이너 등을 많이 사용합니다. 관리되지 않는 개체의 전체 크기가 변경 될 때마다 관리되는 GC를 지속적으로 업데이트해야합니까? 아니면 원래 할당 크기입니까? 언제 RemoveMemoryPressure를 호출합니까? 파이널 라이저? Dispose()?관리되지 않는 개체에 대한 GC.AddMemoryPressure
6
A
답변
2
here 가입일
(및 @Wim COENEN 하였음) 간단한 사용 패턴
하는 관리 객체는 관리되지 않는 생성자 메모리 및 폐기에 릴리스 가 또는 방법을 완성을 할당한다. 관리되지 않는 메모리를 할당 한 후 AddMemoryPressure 메서드 을 호출하고 을 호출하고 해제 한 후 RemoveMemoryPressure 메서드를 호출하십시오. 좀 더 복잡한 시나리오에서
여기서 관리 개체 생전 변화 거의되지 않는 메모리 할당, 하면 런타임 이러한 점진적인 변화 통신 할 AddMemoryPressure 및 RemoveMemoryPressure 메소드를 호출 할 .
그래서 이러한 변화를 추적하기 위해 얼마나 많은 노력을 기울이고 얼마나 많은 이익을 얻을지 결정해야합니다.
+0
예 - 모든 할당을 마스터 개체에 알리기 위해 네이티브 개체의 기본 할당자를 변경 한 다음 관리 코드의 Dispose() 개체를 사용하여 모든 관리되는 방법의 변경 사항 GC를 자동으로 업데이트했습니다. – Puppy
관련 문제
- 1. C++/CLI에서 관리 클래스에서 관리되지 않는 개체에 대한 관리되지 않는 포인터를 전달
- 2. ConstructorInfo 개체에 관리되지 않는 매개 변수가 있는지 어떻게 결정합니까?
- 3. .NET에 대한 관리되지 않는 네이티브 C 코드
- 4. .NET - 관리되지 않는 배열에서 관리되지 않는 배열로 복사
- 5. 관리 및 관리되지 않는
- 6. Mono의 관리되지 않는 프로세스
- 7. (관리되지 않는) C++
- 8. 이 관리되지 않는 코드
- 9. 래퍼를 관리되지 않는 코드
- 10. 깨끗한 관리되지 않는 메모리
- 11. VS2010과 관리되지 않는 Windows 서비스
- 12. VB에서 관리되지 않는 DLL 호출
- 13. 관리되지 않는 개체의 메모리 관리
- 14. Silverlight의 관리되지 않는 코드 정리하기
- 15. MMC (관리되지 않는 C++) 디버깅?
- 16. 관리되지 않는 NSManagedObject 사본 만들기
- 17. .NET에서 관리되지 않는 DLL을 사용하는
- 18. .NET의 관리되지 않는 항목은 얼마입니까?
- 19. C++에서 관리되지 않는 DLL #
- 20. 관리되는 코드에서 관리되지 않는 개체를 매개 변수로 사용하여 관리되지 않는 메서드를 효율적으로 호출
- 21. 관리되지 않는 코드에 대한 관리되는 컨트롤 핸들 제공 - 액세스 위반
- 22. 형식의 배열에 대한 마샬링 (관리되는 C# -> 관리되지 않는 C++)
- 23. 관리되는 코드와 관리되지 않는 코드는 무엇을 의미합니까?
- 24. 관리되지 않는 Eclipse 서식 프로파일은 어떻게 관리합니까?
- 25. 관리되지 않는 메모리 및 관리되는 메모리
- 26. 관리되지 않는 메모리를 관리되는 바이트 배열로 복사
- 27. 관리되지 않는 C++ tlh 파일이 업데이트되지 않습니까?
- 28. C#에서 DllImport를 관리되지 않는 C++ 라이브러리
- 29. 관리되지 않는 C++ dll에 Windows 핸들 전달
- 30. 관리되는 클래스의 관리되지 않는 구조 인스턴스
어떻게 가비지 수집기가 관리되지 않는 개체를 수집 할 것으로 예상합니까? – dtb
@dtb : [GC.AddMemoryPressure] (http://msdn.microsoft.com/en-us/library/system.gc.addmemorypressure.aspx)는 x 바이트의 관리되지 않는 메모리가 할당 된 상태로 관리되는 개체가 있음을 런타임에 알립니다. (예 : COM 개체에 대한 참조가 있음). 이렇게하면 가비지 컬렉터가 죽은 객체를 찾고 최종 처리기를 실행하여 프로세스의 관리되지 않는 메모리를 확보 할 수 있습니다. –
@dtb : 소유하고있는 관리 대상 개체를 수집합니다. – Puppy