课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存功能是程序员在开发软件的时候会经常用到的一个编程功能,下面我们就通过案例分析来了解一下,软件开发缓存的应用分析。
缓存是一种通过维护相对较小的(临近的)高速内存块中的数据来解决系统突发性能的技术。这里我们主要关心软件缓存,即由中间件、操作系统、文件系统、存储系统和数据库等软件系统维护的缓存(而非由硬件实现的缓存,如CPU的L1、L2和L3缓存)。重复访问存在于缓存中的数据的行为,称为缓存命中,其远快于从实际存储中获取数据。其他访问则称为缓存缺失。缓存管理策略的主要工作是确定哪些元素可以放在缓存中,猜测哪些元素可以获得高的命中率,即缓存命中率和整体访问数的比率。这类框架通常会尝试在负载中确定某些模式来获得高命中率。
近(访问)和常(访问)是软件缓存管理策略经常使用的两种方式。近(访问)认为,近访问的元素很可能在不久的将来被重复访问。相比之下,常(访问)认为,常访问的元素很可能在不久的将来被重复访问。由于大多数负载元素的流行度都会随着时间变化,通常会使用如滑动窗口[17]或指数退避[13,19]来测量使用频率。
从经验上看,不同的负载展示了不同程度的近(访问)vs常(访问),这也是为什么很难去设计一个单一的"佳"缓存管理款框架。因此系统设计者面临的并非一项简单的任务,需要了解负载的特性,然后为这些负载调研出一个可以提供高命中率的缓存管理策略。而且,一些缓存管理策略具有可调节的参数,这要求系统设计者了解如何去配置这些参数。更糟糕的是,当设计一个新系统时,有可能无法事先知道未来运行的负载,这样设计者就无法判断应该选择哪种缓存管理策略。另外,在一般的缓存库中,为了无需让用户处理设置参数,会将这些参数设置为默认值,以为大多数负载提供佳结果。但对于其他系统负载,这类设置可能会大大偏离佳结果。
总之,自适应软件缓存管理策略需要在尽可能多的负载上获得富有竞争力的命中率。我们将聚焦在探索软件存储的自适应性机制。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。