다른 미지의 가능성이있는 LOH 단편화를 포함 할 수있는 희망없는 메모리 문제에 대해서는 다른 활성 질문 HERE이 있습니다.대용량 배열 및 LOH 단편화. 수락 된 국제 대회는 무엇입니까?
지금 제 질문은 무엇이 허용되는 방식입니까? 내 응용 프로그램이 Visual C#에서 수행되어야하고 int [4000000]의 튜닝을 위해 큰 배열을 처리해야하는 경우 어떻게 이 아닌가? 가비지 수집기의 LOH 처리를 거부 할 수 있습니까?
큰 배열을 전역으로 만들 것을 강요당하는 것처럼 보일 수 있으며, 그 중 어느 하나에도 "new"라는 단어를 사용하지 않는 것 같습니다. 그래서, 함수에 의해 전달되는 깔끔하게 크기가 정해진 배열 대신에 "maxindex"변수를 가진 유망한 전역 배열이 남아 있습니다.
나는 이것이 항상 나쁜 습관이라고 들었다. 어떤 대안이 있습니까?
System.GC.CollectLOH("Seriously")
의 곡에는 어떤 종류의 기능이 있습니까? 가비지 수집을 System.GC 이외의 다른 방법으로 아웃소싱 할 수있는 방법이 있습니까?
어쨌든 큰 (> 85Kb) 변수를 처리하기 위해 일반적으로 받아 들여지는 규칙은 무엇입니까?
이것은 가장 좋은 질문 일 수 있습니다 ...하지만 어떻게 CDB와 SOS를 얻을 수 있습니까? Google은 모르는 것 같습니다. "CDB 다운로드"를 따르는 모든 링크는 CDB처럼 들리지 않는 "DDK3"목록의 일부 MSDN 검색 결과 페이지를 가리 킵니다. –
다운로드 'Windows 용 디버깅 도구'. CDB는 콘솔 디버거이며 WinDbg는 '그래픽'과 동일합니다 (텍스트 모드이지만 MDI 창에서 렌더링 됨). SOS는 .NET과 함께 제공됩니다 : '% systmeroot % \ microsoft.net \ framework \ v2.0.50727 \ sos.dll'(.NET 3은 .NET 2 SOS.dll을 사용하고 .NET 4는 자체 버전을 제공합니다.) –
또한 , Visual Studio의 직접 실행 창에서 SOS를로드 할 수 있습니다 (CDB 필요 없음).하지만 절대로 시도한 적이 없습니다. –