WebClient를 사용하고 있습니다. DownloadString ("http://example.com/string.txt"); 내가 메모리라고 부르면 메모리는 올라가지 만 다시는 내려 가지 않는다. 그리고 웹에서 다운로드 한 2-3 개의 다른 문자열이 필요하기 때문에 메모리가 상당히 많이 올라간다.C# WebClient 메모리 사용량
저는 C#을 처음 사용하면서도 배우기는했지만 어쨌든 웹에서 문자열을 다운로드 한 후에 메모리를 지울 수 있습니까? 그렇지 않다면 메모리를 적게 사용하는 웹에서 읽을 수있는 다른 방법을 알고 계십니까?
string result;
using (WebClient client = new WebClient())
{
result = client.DownloadString("http://example.com/string.txt");
}
Console.WriteLine(result);
이것은 웹 클라이언트 인스턴스에서 사용하는 대부분의 자원이 해제되어 있는지 확인합니다 : 코드는 다음과 같이해야하므로
감사
아니요, 걱정하지 마십시오. 가비지 수집이 작동하는 방식 (.NET 및 다른 곳에서)은 메모리가 즉시 해제되지 않는다는 것입니다. 클린업의 원인은 메모리 부족입니다. –
죽은 객체에 대한 참조를 보유하지 않는 한 (그리고 IDisposable 인 객체를 적절하게 처분하는 경우) GC를 사용하면 결과적으로 정리할 수 있습니다. 그러나 직접보고 싶다면'GC.Collect' (http://msdn.microsoft.com/en-us/library/system.gc.collect.aspx)를 호출하여 테스트 할 수 있습니다. 그것은 단지보아야합니다. 실제 코드에서는 그렇게하기를 거의 원하지 않습니다. –