我想知道为什么人们总是说将操作系统和程序安装放在 SSD 上(而不是更大的磁盘 HDD)。
据我了解,在内存层次结构中,程序应该从磁盘加载到内存,并通过各级缓存从进程进行访问。
在我看来,除非进程必须不断地从磁盘向内存获取新数据/指令,否则程序是安装在 SSD 还是 HDD 上应该没什么大不了的——也许只会影响初始加载时间。
当然,大型程序将需要较大的虚拟内存,并且可能还需要一些良好的磁盘交换,但我认为这是一个单独的问题,无论如何都由操作系统来处理。
答案1
应用程序启动时不会将所有内容加载到内存中然后开始运行。相反,应用程序代码仅在需要时加载,然后保留在内存中。这可能意味着加载应用程序 exe 的几个群集,从 dll 加载几个群集,再加载回 exe,然后从不同的 dll 加载群集。此过程可以持续到应用程序窗口出现甚至更久。从菜单或工具栏启动复杂操作可能需要大量磁盘访问。这可以为大型应用程序节省大量内存,这当然是最重要的。Windows、Linux 和 Mac 等操作系统遵循相同的一般原则。
这种加载过程的缺点是,对于传统驱动器来说,这意味着大量的磁头移动。即使驱动器没有碎片,情况也是如此。驱动器将花费更多时间来寻找磁头到所需位置,而不是实际读取数据。操作系统会尝试尽可能高效地完成此操作,预取等功能会提供帮助,但基本问题仍然存在。
一个很好的解决方案是使用 SSD。由于它们没有移动部件,寻道时间几乎为零,性能得到很大改善。它不仅提高了应用程序性能,还提高了应用程序响应时间。对于用户来说,这往往是最重要的。
从个人经验来看,我可以说 SSD 非常值得。即使是在只有 SATA2 且无法支持 SSD 全部传输速率功能的旧电脑上。
答案2
启动程序或操作系统是一个非常复杂的过程。有些应用程序需要数十个库和其他文件,这些文件通常分散在整个磁盘上。启动操作系统甚至需要读取数百个文件。如果所有内容都位于 SSD 上,则这些加载操作的执行速度会快得多。
因此,您启动程序的次数越多,您就越能“感受到” HDD 和 SSD 之间的差异。即使您只是启动操作系统,然后启动 Web 浏览器,SSD 也会显著提高这两种操作的速度。
但现在 1TB SSD 价格实惠,拆分数据不再那么重要。如果您有 HDD,您可以将其用于非常大的文件,其余文件可以放在 SSD 上。
答案3
我想知道为什么人们总是说将操作系统和程序安装放在 SSD 上(而不是更大的磁盘 HDD)。
据我了解,在内存层次结构中,程序应该从磁盘加载到内存,并通过各级缓存从进程进行访问。
在我看来,除非进程必须不断地从磁盘向内存获取新数据/指令,否则程序是安装在 SSD 还是 HDD 上应该没什么大不了的——也许只会影响初始加载时间。
当然,大型程序将需要较大的虚拟内存,并且可能还需要一些良好的磁盘交换,但我认为这是一个单独的问题,无论如何都由操作系统来处理。
假设计算机已打开。那么 RAM/主内存就很清楚了。
现在必须将数据从存储(SSD 或磁性旋转磁盘驱动器)加载到 RAM。SSD 的速度会快得多。
你写
当然,大型程序将需要较大的虚拟内存,并且可能还需要一些良好的磁盘交换,但我认为这是一个单独的问题,无论如何都由操作系统来处理。
这不仅仅是大型程序。
如果用户在 Chrome 中打开了大量标签,那么几乎会用掉所有 RAM!
我的笔记本电脑有 16GB 内存,其中大约 14GB 被 Chrome 使用,因为 Chrome 中有大量 chrome.exe 进程
现在假设我启动另一个程序。
即使该程序(Adobe Premiere Pro,用于编辑视频)仅使用 Chrome 所用功能的一小部分!!操作系统仍然必须在 RAM 和存储之间交换数据。
由于进行了全部交换,SSD 的速度将会更快。
多年前,在 DOS 时代,曾有 RAM 驱动器的概念。其中一小部分 RAM 被视为硬盘!因此,您可以引用例如 L:\ 并向其写入文件或目录,而且速度很快。然后,当您重新启动计算机时,它将被清除。
如果操作系统确实将您需要的所有内容从存储转储到 RAM 中,那么一旦它完成了转储,无论您使用的是 SSD 还是硬盘,都不会有什么区别。但事实并非如此。假设您打开一个程序,然后关闭它。操作系统是否应该将该程序保留在 RAM 中。会吗?这有点主观,您无法真正控制它。
如果计算机启动缓慢,因为它将大量数据从速度较慢的 HDD 转储到 RAM,而用户开始打开更多程序,那该怎么办?SSD 的速度将带来巨大的差异。