首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java缓存评估代码

Java缓存评估代码
EN

Stack Overflow用户
提问于 2012-12-06 06:20:40
回答 2查看 88关注 0票数 0

为非db操作实现缓存有意义吗?实现它来评估冗长的代码块有意义吗?例如,我有一段接受参数的代码。基于这个参数,它遍历if/else块的复杂列表,直到它匹配正确的值并返回一个值。在我的例子中,In参数是有限的,OUT参数基于IN参数是一致的,即对于每个'A‘,返回是'B’,对于每个'X‘,返回是'Z’。此类操作不涉及DB记录。我想知道,通过引入缓存,我可以从长期运行的评估中减少任何时间。有什么建议吗?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-12-11 21:38:01

只要执行的代码足够长或足够复杂,从而证明所做的努力是合理的,这就很有意义。例如,请参阅http://static.springsource.org/spring/docs/3.1.0.M1/spring-framework-reference/html/cache.html对Spring缓存注解的支持,它工作在Java方法级别。但是您可以很容易地在非Spring环境中自己实现这种方法。

您应该首先分析您的应用程序,看看每个CPU在受影响的代码块中花费了多少时间,看看缓存在这里是否有意义。

票数 1
EN

Stack Overflow用户

发布于 2012-12-19 06:09:58

这取决于你如何重视低延迟。根据this presentation from Google (幻灯片#13)的说法,从主内存进行1MB的顺序读取大约需要0.25ms,而且还有很多其他更昂贵的东西。来自同一张幻灯片:

  • 单个磁盘寻道速度提高40倍来自网络的1 MB数据速度提高40倍slower;
  • reading来自磁盘的1 MB数据速度降低120倍

因此,缓存在某些情况下可以提供极大的帮助,但您需要进行分析,看看您的算法浪费了多少时间,然后再做出决定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13733535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档