我在 2G RAM 机器上运行的大型遗留代码库中看到了一些真正缓慢的构建时间,而没有适当的程序集分解。所以,如果我想在不进行代码大修的情况下加快速度,如果童话 IT 部门提供一台 16G(或其他如此巨大的数量)RAM 机器,会不会快得多?换句话说,RAM 是足够大的 dotnet 项目的主要瓶颈还是存在其他主要问题?
出于纯粹的好奇,任何关于构建 Java 的类似情况的输入也受到赞赏。
我在 2G RAM 机器上运行的大型遗留代码库中看到了一些真正缓慢的构建时间,而没有适当的程序集分解。所以,如果我想在不进行代码大修的情况下加快速度,如果童话 IT 部门提供一台 16G(或其他如此巨大的数量)RAM 机器,会不会快得多?换句话说,RAM 是足够大的 dotnet 项目的主要瓶颈还是存在其他主要问题?
出于纯粹的好奇,任何关于构建 Java 的类似情况的输入也受到赞赏。
一旦您的 RAM 多于应用程序使用的 RAM,性能并不会随着 RAM 的增加而提高。使用 128GB 的 RAM,您可能看不到任何改进。
我们无法猜测所需的数量。通过查看任务管理器来衡量。
它肯定不会对你造成任何伤害...
2G对于开发机来说是很小的,我当然用16G。
但是,构建时间迟早会受到文件访问的限制,因此虽然您可能会得到一点改进,但我怀疑您不会被它所震撼。([编辑]正如评论者所说,编译也可能受 CPU 限制)。
您是否研究过并行构建(例如,请参阅此 SO 问题:Visual Studio 2010,如何在多核上并行构建项目)。
或者,您是否可以重组您的代码库,并可能将一些更新频率较低的程序集删除到一个单独的 sln 中,然后将它们作为 DLL 引用(这在所有情况下都不是一个好主意,但有时它可能是权宜之计)。根据您对问题的描述,我猜这说起来容易做起来难,但这就是我们在代码库中取得良好结果的方式。
整个 RAM 问题实际上是 ROI(利息回报率)之一。您添加到系统的 RAM 越多,应用程序就越不可能搜索足够大的内存位置来存储特定大小的对象,并且运行速度越快;然而,在某个点之后,系统不太可能选择一个不够大的位置来存储对象,因此再往上走就毫无意义了。(请注意,RAM 棒的读/写速度也在其中发挥作用)。
总结:@ 2gb RAM,你绝对应该将它升级到更像 8gb 或建议的 16gb 但是做更多的事情几乎没有意义,因为瓶颈将来自处理器。 另外,注意 RAM 的速度可能也是一个好主意,因为这样你的 RAM 可能会成为瓶颈,因为它最多只能处理 XXXXmhz 时钟速度。不过,一般来说,1600mhz 就可以了。