我的意思是启动第二个进程。我启动该进程(在 Linux 上,使用任何版本 3.x),需要 5 秒钟才能加载。然后我终止该进程。没有 Firefox 实例在运行。我第二次、第三次或第四次启动 Firefox……它总是启动得非常快。
我的问题:为什么?我们是在谈论 Firefox 所依赖的所有文件的缓存吗?我需要对硬盘进行碎片整理吗?Firefox 是否在本地缓存了各种网页(包括其持久的网络历史记录)?或者它是否在初始化过程中缓存了某些内容(以便第二个进程启动 - 而不是第二个窗口或选项卡启动 - 注意,这不是问题所在),而这些内容在重启后不会持续存在?或者内存层次结构的其他部分是否存在缓存?
我可以尝试找出答案。但老实说,我并不太在意(据我所知,Chrome 在 Linux 上并没有提供稳定的 Flash 格式)。我对替代方案(opera 或 webkit/khtml 解决方案等)不太感兴趣,所以我没有特别的选择。只是好奇。
答案1
Firefox 仍缓存在 RAM 中,这就是第二次启动时速度如此之快的原因。如果您在第二次启动前等待一段时间,速度就不会那么快。Windows 和 Mac OS X 也是如此,而不仅仅是 Linux。
答案2
有些程序使用大量库 (dll),这些库必须先加载才能运行。程序终止后,操作系统会将它们留在内存中,以备再次使用。如果其他程序需要加载,它们将被“清除”。所以,是的,这是一种缓存形式。
某些程序(例如 Open Office)表现出这种行为,甚至带有“快速启动”功能,可以在启动时(甚至在您运行应用程序之前)预加载大多数必要的文件。
答案3
在 Linux 中,未使用的 RAM 是浪费的 RAM,因此几乎所有最近打开的应用程序都是为了这个目的而被缓存的。
答案4
您可能对 Firefox “3.6”(3.5 之后的下一个版本)正在进行的启动性能工作感兴趣。此博客有许多关于此问题的总结文章:http://autonome.wordpress.com/