성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Roll A Lisp In C - Reading ; https...
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <br /> Orcas 3월 CTP 버전과 함께 다양한 기능들이 소개되고 있습니다. 이번에는 Garbage Collector의 변화된 점들을 소개해 드리겠습니다.<br /> <br /> 미리 말씀드리자면, 다음 토픽이 원본입니다.<br /> <br /> <pre class='code'> New In Orcas Part 1: What we’ve been doing ; <a target='_tab' href='https://learn.microsoft.com/en-us/archive/blogs/clyon/new-in-orcas-part-1-what-weve-been-doing'>https://learn.microsoft.com/en-us/archive/blogs/clyon/new-in-orcas-part-1-what-weve-been-doing</a> </pre> <br /> <hr style='width: 50%' /><br /> <br /> 첫 번째로, 버그 수정을 예로 드는군요. OOM(Out-of-memory) 버그 및 성능 향상이 있다고 합니다. 이거야 뭐... 우리가 굳이 ^^ 신경 쓸 필요는 없을 것 같고.<br /> <br /> 두 번째로, ... 이 부분부터가 개발자들에게는 재미있을 것 같습니다. GC.Collect 메서드에 또 다른 System.GCCollectionMode 열거형 인자가 추가되었습니다. 함수 원형이 다음과 같습니다.<br /> <br /> <pre class='code'> // Summary: // Forces a garbage collection from generation zero through a specified generation, // at a time specified by a System.GCCollectionMode value. // // Parameters: // mode: // One of the System.GCCollectionMode values. // // generation: // The number of the oldest generation on which garbage collection can be performed. <b>public static void Collect(int generation, GCCollectionMode mode);</b> // Summary: // Specifies the behavior for a forced garbage collection. [Serializable] <b>public enum GCCollectionMode</b> { // Summary: // The default setting for this enumeration, which is currently System.GCCollectionMode.Forced. Default = 0, // // Summary: // Forces the garbage collection to occur immediately. Forced = 1, // // Summary: // Allows the garbage collector to determine whether the current time is optimal // to reclaim objects. <b>Optimized</b> = 2, } </pre> <br /> 말 그대로, GCCollectionMode.Optimized 인자를 지정하게 되면 GC로 하여금 효율을 판단해서 필요한 경우에만 수집을 할 수 있도록 명령을 내릴 수 있습니다. 아마도 응용 프로그램 개발자들을 위해서 ".NET" 팀이 내부 GC 동작을 방해하지 않는 범위 내에서 마음껏 Collect 메서드를 부를 수 있도록 "Optimized" 값을 제공해 주는 의도가 있는 듯합니다.<br /> <br /> 세 번째로, ... 이것도 재미있을 것 같습니다. ^^ 그동안은, GC가 수집 작업이 필요하다고 판단이 되면 무조건 사용자 코드의 상황을 고려하지 않고 구동이 되는 구조였을 텐데요. .NET 3.5에서는 이 부분을, 사용자가 직접 코드 구역을 지정할 수 있도록 해주고 있습니다. 따라서, 급하게 끝내야 할 코드가 있는 경우, 그 시점에 GC의 동작을 최대한 지연시킬 수 있도록 해주는 방편을 제공해 줍니다.(물론, 관리 힙의 메모리가 완전히 소진되는 상황을 GC가 가만히 앉아서 지켜보진 않을 것이므로, 완벽한 지연을 기대해서는 안될 것입니다.)<br /> <br /> 관련 코드는 다음과 같습니다.<br /> <br /> <pre class='code'> // Summary: // Specifies the garbage collection settings for the current process. public static class GCSettings { // Summary: // Gets a value indicating whether server garbage collection is enabled. // // Returns: // true if server garbage collection is enabled; otherwise, false. public static bool IsServerGC { get; } // // Summary: // Gets or sets the current latency mode for garbage collection. // // Returns: // One of the System.Runtime.GCLatencyMode values. The default mode in workstation // applications is System.Runtime.GCLatencyMode.Interactive, and the default // mode in server applications is System.Runtime.GCLatencyMode.Interactive. <b>public static GCLatencyMode LatencyMode { get; set; }</b> } // Summary: // Adjusts the time that the garbage collector intrudes in your application. [Serializable] public enum GCLatencyMode { // Summary: // Disables garbage collection concurrency and reclaims objects in a batch call. // This is the most intrusive mode. Batch = 0, // // Summary: // Enables garbage collection concurrency and reclaims objects while the application // is running. This is the default mode for Workstation GC and is less intrusive. Interactive = 1, // // Summary: // Enables garbage collection that is more conservative in reclaiming objects. // Collections occur less frequently. This is the least intrusive mode. <b>LowLatency</b> = 2, } </pre> <br /> 자주 사용할 만한 것들은 아니지만. ^^<br /> 참고로 GCLatencyMode에 관련해서 좀 더 자세한 설명은 다음에서 제공되고 있습니다.<br /> <br /> <pre class='code'> New In Orcas Part 3: GC Latency Modes ; <a target='_tab' href='https://learn.microsoft.com/en-us/archive/blogs/clyon/new-in-orcas-part-3-gc-latency-modes'>https://learn.microsoft.com/en-us/archive/blogs/clyon/new-in-orcas-part-3-gc-latency-modes</a> </pre> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1050
(왼쪽의 숫자를 입력해야 합니다.)