이 코드는 중복 된 것처럼 보일 수 있지만이 특정 사례는 약간 다를 수 있습니다.명시 적으로 메모리를 확보하십시오.
내 MVC 응용 프로그램에서 Excel 시트와 비슷한 테이블을 표시하는 데 사용되는 큰 목록이 포함 된 ViewModel이 있습니다. 각 MyComplexClass에는 MyComplexClass 및 MyComplexColumn 목록이 포함되어 있습니다.
이것은 꽤 큰 메모리 사용을하지만, 지금은 문제가 있습니다. 내 큰 테이블을 정리하고 다른 데이터 세트를로드하는 메소드를 작성해야한다. 내가 좋아하는 뭔가를 작성할 수
MyViewModel.Lines = new List<MyComplexClass>();
MyViewModel.LoadNewSetOfData(SetOfData);
을하지만, 명시 적으로 이전 목록에 내 참조를 상실하는 C의 배경에서 오는 내가 할 수있는 일이 아니며, 매일 아침 거울에 내 얼굴을보고 계속합니다.
는 내가 널 (null)에 대한 참조를 설정 한 다음
GC.Collect()
를 호출 할 수 있습니다, Here, Here 및 Here을 보았다하지만 내가 정말 영향을 수 있습니다, 특히 있기 때문에, 정말 가장 좋은 방법은 아니라고 들었다 성능 및 GC가이 특정 메모리 할당을 처리했는지 여부를 알 수 없기 때문입니다.
방금 Free()와 같은 어떤 것을 호출하여 사용할 수있는 방법이 없습니까?
고맙습니다.
그냥 살아서 GC가 제대로 작동하도록하십시오. –
* "이것은 꽤 큰 메모리 사용량을 만듭니다"* - 그래서 당신은 정말로 추억에서 벗어나거나 그것에 대해 걱정하고 있습니까? 두 번째 옵션 - 심각하게 생각하지 않으면 GC는 대부분의 경우 잘 처리됩니다. –
네, GC가 당신보다 더 낫습니다. 명시 적으로 메모리를 비우지 않는 것이 부끄럽지 않습니다. – Master117