0

最近怎么样。

有件事一直困扰着我……我想知道你们中是否有人知道解决此问题的方法。

我正在开发的 C# 解决方案是一个庞大的解决方案,其中包含大约 20 个项目和几乎相同数量的单元测试项目。每个项目包含数百个文件。所以打开和关闭解决方案需要一段时间......但一旦打开,一切都很好。

但是,如果我让我的电脑过夜(我的解决方案仍然在 VS 中打开)并在第二天早上回来,那么我在 VS 中所做的一切在接下来的半小时左右都会非常慢。

我知道为什么会发生这种情况......这是因为 Windows 似乎从内存 (RAM) 中删除了空闲进程。当我在 VS 中做某事时,它会从页面文件中获取数据并将其放回内存中,这会减慢我所做的所有单个操作,直到进程的内存已完全恢复到 RAM 中。

所以我的问题是,有没有办法告诉 Windows VS 是一个高优先级进程/应用程序并将该进程的内存留在 RAM 中?

提前致谢,

-奥利

4

3 回答 3

2

我不认为这是可能的。OTOH,您可以将计算机置于磁盘挂起模式。当您离开时(即:RAM 中的 VS)几乎会冻结其状态,并在您开始工作时将其恢复到相同状态。作为额外的奖励,您将有助于节约能源,从而可能拯救地球。

于 2009-08-28T13:32:08.190 回答
0

您可以根据本文更改您的 VS 快捷方式提高优先级,但我不知道它是否会为进程的内存执行您所描述的操作。

也仅出于性能考虑,您可以考虑使用 SSD 驱动器来替换您的硬盘驱动器(如果您还没有的话)。我的一个朋友向我展示了他的带有 SSD 的新笔记本电脑,它不到一分钟就启动了 Windows,不到 5 秒就打开了 VS。

当然,直接从开始菜单打开 VS,打开这么大的项目希望至少会快得多。

于 2009-08-28T13:34:05.317 回答
0

AFAIK,更改进程优先级不会解决问题,因为瓶颈似乎是 I/O 而不是 CPU 时间。如果问题影响了您的工作效率,那么购买更多 Gs 的 RAM 将是非常值得的(多少取决于您的操作系统和预算)。如果您可以获得大约 3-4GB 的 RAM,您甚至可以消除交换文件(或关闭以消除它)。这将防止 VS 在空闲时下沉。

另一种选择是创建一个工具来遍历 VS 的堆,强制它进入主内存。这可以通过编写加载项或代码注入来完成。在你开始工作之前让它运行,一旦你开始使用它,你就会启动 VS。但是,它需要一些工作,并且您可能会在内存中获得比实际需要的更多的内存(即使您像往常一样工作,VS 的一些内存也在交换文件中,就像其他所有进程一样)。

于 2009-08-28T14:50:32.153 回答