中文

方法级应用层缓存推荐的比较研究

软件工程 2022-08-02 v1

摘要

性能与可扩展性需求在大多数大规模软件应用中具有基础性作用。为满足此类需求,常在多个层级与基础设施层使用缓存。应用层缓存——或称记忆化(memoization)——是一种在应用边界内日益广泛使用的缓存形式,其将计算结果存入内存以避免重复计算。这通常由开发者手动完成,他们在代码中识别缓存机会并编写额外代码来管理缓存内容。识别缓存机会是一项挑战,因为这需要分析工作负载以及可行且有益于缓存对象代码位置。为辅助开发者完成该任务,已有方法可自动识别可缓存方法。尽管这些方法已分别得到评估,但其有效性尚未被比较。因此,本文提出一项实证评估,使用七个开源 Web 应用,比较两种现有方法级应用层缓存方法(即 APLCache 与 MemoizeIt)所给出的方法推荐。我们分析了每种方法的推荐结果,以及其有效缓存推荐所带来的命中、未命中与吞吐量。结果表明,两种方法的有效性在很大程度上取决于具体应用、无效推荐的存在以及额外配置(如生存时间)。通过检视所得结果,我们观察到每种方法的推荐在哪些情况下失败与成功,由此推导出七条经验教训,为未来支持开发者采用此类缓存的方法提供方向。

关键词

引用

@article{arxiv.2208.00232,
  title  = {A Comparative Study of Application-level Caching Recommendations at the Method Level},
  author = {Romulo Meloca and Ingrid Nunes},
  journal= {arXiv preprint arXiv:2208.00232},
  year   = {2022}
}