많은 개체가 큰 개체 힙에서 메모리 할당을 받기 때문에 C# 응용 프로그램에서이 응용 프로그램이 메모리 부족 문제를 겪고 있습니다.큰 개체 힙 메모리에서 일부 메모리를 미리 할당합니다.
내 C# 응용 프로그램이 여러 개의 큰 파일 (문자열 개체)로 작동해야하므로이 문자열 유형 개체의 메모리가 LOW 개체 힙에서 반복 할당되어 LOH 조각화로 이어집니다.
문자열은 변경 불가능한 객체이므로 LOH의 새 메모리는 항상이 객체에 할당됩니다. 내 질문은, 거기에 큰 개체 힙에 일부 메모리를 미리 할당 할 수 및 항상 문자열 개체에 동일한 메모리를 할당 할 수있는 방법입니다.
자세한 내용은 다음과 같습니다. 앞서 언급했듯이이 큰 파일에 대한 처리를하고 있습니다. 처리하려면 문자열로 변환해야합니다. 비록 내가 stringBuilder를 사용한다고하더라도, LOH에 할당 된 문자열을 별도의 메모리로 변환하자마자 도움이되지 않을 것입니다.
메모리에 100KB를 할당하고 새 파일을 읽고 문자열로 변환 할 때마다이 100KB가 할당됩니다.
기본적으로 변경할 수있는 문자열 인'StringBuilder'를 사용하십시오. –
왜 같은 문자열을 반복해서 할당하고 있습니까? 한 번 만들었다면 모든 소비자에게 전달하십시오. – Andrei
왜 LOH 단편화가 문제라고 생각하십니까? – svick