繁体   English   中英

C#WebClient内存使用情况

[英]C# WebClient Memory Usage

我正在使用WebClient,DownloadString(“ http://example.com/string.txt ”); 当我调用它时,内存会跳起来,但永远不会再次下降,因为我需要从网上下载2-3个不同的字符串,所以内存会大大增加。

我是C#的新手并且还在学习,但是从网上下载字符串之后是否还要清除内存? 如果没有,你知道我可以使用任何其他方法从网上阅读使用更少的内存吗?

谢谢

WebClient实现了IDisposable ,因此您的代码应如下所示:

string result;
using (WebClient client = new WebClient())
{
    result = client.DownloadString("http://example.com/string.txt");
}
Console.WriteLine(result);

这将确保释放WebClient实例使用的大多数资源。

其余的最终将由垃圾收集器清理。 你不需要担心这个。

Taskmgr.exe或ProcExp.exe等工具显示的“内存使用情况”会告诉您蹲下程序使用的实际内存。 当垃圾收集器释放虚拟内存时,可用空间几乎不会返回给操作系统。 它被添加到一个空闲块列表中,准备好在下一次分配时重用。 自由块合并回一系列可以释放的页面的可能性非常小。

这绝不是一个真正的问题,这是虚拟内存。 另一种让您感觉良好的方法是最小化程序的主窗口。 这会削减工作集,即使用的RAM量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM