如何让我的 Visual Studio 在没有调试程序的情况下运行不断扩大 RAM 使用量直到 RAM 已满,甚至将 SSD 用作“RAM”?
Posted
技术标签:
【中文标题】如何让我的 Visual Studio 在没有调试程序的情况下运行不断扩大 RAM 使用量直到 RAM 已满,甚至将 SSD 用作“RAM”?【英文标题】:How to have my Visual Studio running without debugging program keep expanding RAM usage till RAM is full and even then use SSD as "RAM"? 【发布时间】:2021-07-31 13:34:08 【问题描述】:我遇到了“内存不足异常”,我的 32 GB RAM 甚至还没有满,它正在下载图片,我希望它在晚上继续下载和扩展 RAM 使用量,甚至在之后使用 SSD 作为替代“RAM” RAM 已满(我有 2 TB SSD,它有 390 GB 空)。
为什么要扩展 RAM,我正在做一个包含很多这样的循环:
using (WebClient wc = new WebClient())
wc.DownloadFileAsync(new Uri(url), @"g:\Folder1\" + i.ToString() + ".jpg");
那么为什么每次文件(图像)下载完成后 RAM 不被释放。
【问题讨论】:
编程问题超出了超级用户的范围 在哪里发布? 您应该阅读标签说明,尤其是针对 C# 的说明,它准确地指出了该问题将在哪个 SE 社区范围内。但是,它还有其他问题,这是我不投票迁移它的原因之一 @John1990,可以参考Example了解如何使用WebClient.DownloadFileTaskAsync和Task.WhenAll来标记wc完成。之后,您可以使用 wc.Dispose()。 【参考方案1】:设置pointer to the object to null to encourage garbage collection。
也就是说,依赖垃圾回收的 Java 和 C# 等语言,而不是具有可显式调用的 C++ 和 Delphi (Object Pascal) 等真正的析构函数,清理垃圾的速度可能很慢。
【讨论】:
我认为通过: using (WebClient wc = new WebClient()) webclient 是单独处理的,所以我应该在最后的括号中添加:“wc.Dispose(); "和/或“wc=null;”?而且我对 WebClient 进行了异步文件下载操作,并且 WebClient.DownloadFileCompleted 事件没有触发,那么我怎么知道何时处置 WebClient wc? 处理完一个对象。 ***.com/questions/574019/…以上是关于如何让我的 Visual Studio 在没有调试程序的情况下运行不断扩大 RAM 使用量直到 RAM 已满,甚至将 SSD 用作“RAM”?的主要内容,如果未能解决你的问题,请参考以下文章
我的 Visual Studio 2012 程序在 Debug 中工作,在没有调试的情况下发布 (ctrl + F5) 但不是发布。我该如何解决?