课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
内存与缓存是程序员在学习计算机编程开发技术需要重点掌握的一个编程知识,下面我们就一起来了解一下,浏览器内存与缓存的应用方法。
我们考虑下这样一个场景:有很多应用程序,它们几乎不使用匿名内存,但会大量使用文件系统。这些应用程序每个都会打开许多非常大的文件,对它们执行随机读写操作,而且还打开很长时间。我们同时运行着这些应用程序的多个实例。
在这种情况下,我们可能会看到,系统总体的内存使用率接近全部,和之前一样,但交换区仍然是空的。更重要的是,虽然系统可能因为CPU和I/O使用率高而变慢,但其性能是可预测的:从命令行执行一条简单的命令ls瞬间就可以完成,不会受内存抖动拖累。
这里的情况是,内核现在将所有内存作为其文件缓冲区缓存的一部分;应用程序本身不控制内存。这种内核级的缓存可以跟踪文件页(不是匿名页),通过优化随机I/O和顺序访问(通过预取)来提升I/O性能。通常,该缓存可以占用所有可用的内存。
与前面介绍的Chrome和Bazel所采用的方案相比,这种基于文件的方案有一个很大的不同,就是由内核控制一个统一的跨应用程序的缓存,内核对缓存中的内容了如指掌。内核可以针对缓存中的内容从整体视角做出决策,尽量保证所有应用程序的正常运行:如果只有一个应用程序在运行,那么所有的文件缓冲区缓存将都供它使用;但是,如果有两个或两个以上的应用程序在运行,那么它们将“公平地”共享缓存——我这里之所以加引号,是因为确实存在相互干扰的问题。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。