2009-07-21 7 views

답변

3

당신이 응용 프로그램 도메인 당 리소스 사용 (메모리 및 CPU)를 추적 할 수 있습니다 AppDomainResourceManager 기능도있다. 이 기능의 GC 부분은 appdomain 메모리 추적 당 얻을 수있는 기능입니다.

3

System.Runtime.CompilerServices.ConditionalWeakTable이라는 새로운 클래스 (detailed here)를 사용하는 ephemeron 구현이 있습니다.

이 임의의 인스턴스 인해 임의 "속성"의 설정을 허가 동적 언어를 수집하는 데 유용합니다.

+0

ephemerons를 사용하는 다른 클래스에 대해 알고 있습니까? 예를 들어, 객체'X'에서 객체'Y'까지 단일 링크를 만드는 것이 바람직하다면, 하나의 단일 링크를 유지하기 위해'ConditionalWeakTable' 인스턴스를 만드는 것 이외에 어떤 방법이 있을까요? – supercat

+0

@supercat .Net 1.0 이후 ['System.WeakReference'] (http://msdn.microsoft.com/en-us/library/system.weakreference.aspx)가있었습니다. –

+0

"X"에서 "Y"로의 "링크"를 말할 때, 시스템은'X' 자체가 존재하지 않고'X'에 그러한 참조가 존재하면'Y'는 강력한 루팅 된 참조를 갖는 것으로 간주 할 것입니다 'Y'에 대한 참조를 보유하십시오. .net 4.0에서'Y'는'ConditionalWeakTable myCWT' 필드를 가지고'myCWT.Add (X, this);를 수행함으로써'X'에서 그 자체에 대한 참조를 생성 할 수 있습니다. 그러나 하나의 항목을 보유 할 목적으로 테이블을 작성하는 것은 그러한 항목을 하나 작성하는 데 드는 런타임 비용이 테이블을 작성하는 것과 비견 될 때까지 낭비되는 것처럼 보입니다. – supercat

2

또한 GC에서 작업하는 개발자의 blog을 확인하십시오. 여기에는 새 GC에 대한 기사와 .NET 4.0 GC에 관한 채널 9 인터뷰 링크가 있습니다.

2

예, 많이 있습니다.

최신 저서 Visual F# 2010 for Technical Computing에는 .NET 4 및 F # 자체에 대한 많은 성능 관련 정보가 포함되어 있으며 성능 측정 및 조언은 .NET 4 및 새 백그라운드 가비지 수집기와 매우 다릅니다. 대부분의 경우 성능이 크게 향상되었지만 속도가 느려지기도합니다.