문제

SandCastle은 XSL 변환 중에 OutOfMemoryException 예외로 인해 충돌이 발생하여 클래스 라이브러리를 처리할 수 없습니다.

이에 대해 우리는 무엇을 할 수 있습니까? 메모리를 더 구입하는 것 외에는 무엇을 할 수 있습니까?문제는 이것이 32비트 OS에 3.3GB 메모리를 갖춘 개발자 시스템이므로 기본적으로 64비트 이상의 메모리로 업그레이드하거나(당분간 발생하지 않음) 가상 서버를 설정해야 한다는 것입니다. 이를 수행하려면 많은 메모리가 필요합니다(프로덕션 서버에 영향을 미침).

도움말 파일이 필요한 세계에서 가장 큰 클래스 라이브러리가 있는지 의심스럽습니다. 그러면 어떤 옵션이 있습니까?우리가 끄는 것을 잊어버린 마법의 "메모리 부족 오류로 인한 충돌 방지" 설정이 있습니까?

도움이 되었습니까?

해결책

32비트 Windows를 사용하는 경우 사용자 프로세스는 기본적으로 2GB 메모리만 주소 지정할 수 있습니다(3GB는 대규모 주소 인식으로 실행됨).2GB는 프로세스의 모든 작업에 사용되므로 .NET 런타임, 표준 라이브러리, 예약 등이 모두 필요합니다.내 경험에 따르면 32비트에서 .NET 애플리케이션의 경우 약 1.5GB가 남습니다.

대형 주소 인식 스위치를 사용하면 더 많은 메모리에 액세스할 수 있지만 32비트 Windows를 사용하는 경우에는 무료로 제공되지 않습니다.64비트 Windows로 이동하면 32비트 응용 프로그램이 전체 32비트 주소 공간에 액세스할 수 있으므로 4GB의 주소 지정 가능 공간이 제공됩니다.

최근에 .NET 애플리케이션의 메모리 사용량에 대한 세부 정보가 포함된 블로그 항목을 작성했지만 덴마크어로 블로그를 작성했기 때문에 읽지 못할 수도 있습니다.그러나 살펴보고 싶다면 다음 링크를 참조하세요. http://kodehoved.dk/?p=156

관련 MSDN 블로그 게시물도 찾을 수 있습니다. http://blogs.msdn.com/maoni/archive/2007/05/15/64-bit-vs-32-bit.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top