使用预载的缺点? 为什么默认不包括在内?

我想知道使用preload什么缺点? 如果没有缺点,默认情况下会启用preload ,所以我猜有一些。

好的,你需要更多的内存,但是大多数人拥有的内存远远超过Ubuntu需要的内容 – 那么使用preload的缺点是什么?

简而言之,Preload并不适合所有人。 如果您经常打开应用程序或库,那就太好了。 如果仅偶尔加载应用程序或库,则会有害。 我将使用我实际使用的两个例子(是的,我使用预加载)。

首先是谷歌Chrome。 现在浏览器每次启动只打开一次,也许两次(对我来说,我是一名Web开发人员)。 Chrome及其相关的库保留在内存中,因为我一直在使用它。 即使我关闭所有镀铬窗口,它仍然在后台做它的事情。 因此,所有专用于保存Chrome的预装副本的ram都是完全浪费的。 它永远不会(或很少)卸载。 对于普通用户来说,这适用于大量应用程序。 Office用户几乎总是打开他们的电子邮件应用程序。 因此,启动时间的少量节省完全被浪费,因为他们每天只打开一次电子邮件应用程序,并保持打开状态。

第二个例子是耙子。 作为一个相信测试的ruby开发人员,我开了一个TON。 rake运行,执行几秒钟 – 然后退出。 预加载可以帮助我加快日常工作,因为它可以提前加载rake及其所需的库(可能非常广泛)。 所以rake的运行有很多启动和停止。 在几个小时的时间里,用于加速400或500次耙式加速的额外柱塞是完全值得的。

因此,默认情况下未启用它的原因是因为它实际提高性能的能力很大程度上取决于您使用系统的方式。 对某些人来说,这将是消极的,而对其他人则是积极的。

最后,即使你没有使用它,预加载也会消耗内存。 因此,如果您不经常启动应用程序,您实际上可以通过不将该ram用于其他类型的缓存来使整个系统变得更慢。 请记住,即使您有32 Gig的Linux,Linux也会尝试尽可能多地使用它来缓存数据以加快交互速度。 通过使用预加载,您可以减少一些空闲内存。 即使它只是一点点,你保存启动chrome 1次的2秒可能会在它保持运行的那个月花费你60秒。

Bountier Saeed Zarinfam在2012年9月5日提出的问题:

大家好,我想知道,这是一个神话吗? [预加载]真的能提高我的表现吗? 使用它有什么缺点? 我有一台符合此规格的笔记本电脑(Core i5 CPU,4GB RAM,128GB SSD硬盘)。 非常感谢。

  • 如果您有SSD,则无需预先加载
    • 这是因为SSD提供比硬盘更快的随机访问时间,因此在内存中“预加载”二进制文件/依赖项是一种浪费,IMO
    • 那么基本的缺点是预载是“使用”额外的内存而不提供实际的好处。

Preload是一个“自适应预读守护程序”,它在系统的后台运行,并观察您最常使用的程序,缓存它们以加快应用程序加载时间。 通过使用Preload,您可以将未使用的RAM放在良好的工作中,并提高桌面系统的整体性能。

不要指望立即看到性能的巨大变化。 此外,如果您只是重复打开/关闭应用程序,您的计算机无论如何都会将这些文件存储在缓存中(这称为“热”加载),因此您不会看到速度上的任何差异。 但是,如果您间歇性地使用程序,您将看到速度提升; 这些程序的启动速度比没有Preload的速度快。

预加载可以大大改善应用程序的启动时间; 由于大多数现代机器都有大量的内存,因此Preload可以很好地利用这个RAM。 1

现在说,似乎预载是一个很好的实用程序,它可能是。

我认为它没有预先加载操作系统的原因是因为用户必须确切地知道它在做什么,并且有足够的经验来使用它,并且系统必须有足够的RAM。

在更技术方面,预加载通过将数据从硬盘移动到RAM来工作,这使得大多数硬盘在不使用时进入睡眠模式,然后在需要时必须重新启动。 因此,向上/向下旋转驱动器会导致加载/卸载周期计数,以及上电时间计数上升,这将缩短驱动器的使用寿命。

我们设计并实现了预加载,这是一种基于马尔可夫的自适应预取方案,适用于应用程序级预测。 此外,预加载在用户空间中实现,并且在任何意义上都不会更改应用程序运行时环境。 据我们所知,这是在这个级别上进行文件系统预取的第一个工作。

我们的实验结果显示,与冷缓存相比,应用程序启动时间有了很大的改进,并且与一个简单的预测算法相比具有良好的命中率。

然而,在用户空间中引入了使预加载成为启动时问题的竞争解决方案的主要障碍。 特别是,没有关于应用程序I / O请求的完整信息,以及与页面缓存子系统缺乏强大的通信通道会大大降低预加载的有效性,尤其是在严格的内存条件下。

预加载设计的另一个固有问题是由应用程序启动的相对松散的相关性引起的高方差和低预测信度。 虽然我们成功构建了一个跟踪应用程序相关性的模型,但与计算机处理的时间表相比,应用程序启动的事件是非常罕见的事件,应用程序级预取方案被谴责在几乎无限的时间段内消耗巨大的预取内存。 此内存可用于改善短期缓存行为。

最后,我们为系统开发人员提供了一系列建议,帮助他们了解如何改进启动时间,登录时间和应用程序启动时间,而不会回退到与内核中的缓存子系统集成的预取器。 当然,内核中基于文件的预取器可以在此基础上进行改进。 2

1来源: techthrob

2资料来源: Preload – Behdad Esfahbod的自适应预取守护程序 – 根据科学硕士学位 – 多伦多大学计算机科学研究生学位的要求提交的论文 – Behdad Esfahbod的版权所有(c)2006。

缺点? 没有了!

提高了用户打开应用程序的性能。 我已经在我的系统上使用它多年以及“预读”并且没有问题。 预加载的错误页面也没有任何缺点。

预加载监视用户运行的应用程序,并通过分析此数据,预测用户可能运行的应用程序,并将这些二进制文件及其依赖项提取到内存中,以缩短启动时间。

它确实略微增加了启动时间,但是应用程序的速度降低获取时间远远超过了这个小问题。

看文章

如果你经常使用像FirefoxGimp这样的常见应用程序,你会发现一些大大改善的加载时间。 Preload是一个守护程序,它在后台独立运行,不会破坏您的桌面。 Ubuntu用户可以安装preload:

 sudo apt-get install preload 

结果:

图表显示正常启动和预载启动之间的差异

REF

请看Lorenzo Colitti关于分析和改进GNOME启动时间的文档 。

Coletti不是preload的作者。 在他的文档中,他引用了Sourceforge.net上的预加载项目页面 。

基本上,有两个原因。

  1. 这是一个GNOME开发。 GNOME不受欢迎,正如Coletti在本文中指出的那样,其他环境的开发人员认为这项工作是错误的方法。

  2. preload的目标是单用户性能,而不是多用户。 所以项目的范围与所有发行版的范围都不匹配。

阅读Colitti文件的第9和10页。