在ehcache中有更多可搜索的属性会降低缓存的性能吗?

时间:2015-09-12 09:27:19

标签: java caching ehcache

我正在开发一个使用ehcache的项目。我们正在大量使用搜索API,并且我们使用的值大约有5-7个搜索属性。

所以,我想知道这些搜索属性会降低缓存的性能吗?

2 个答案:

答案 0 :(得分:1)

在开源Ehcache中,搜索功能使用强力。这意味着搜索费用按如下方式支付:

  1. 在插入缓存时,搜索子系统将确保属性值与配置的预期类型匹配。
  2. 在搜索时,您必须再次从映射中提取属性值 - 仅限于查询中使用的属性。
  3. 鉴于此,是的,属性数量对put产生了直接的性能影响,但get没有。

答案 1 :(得分:1)

EhCache文档说明

  

搜索操作在O(n)时间内执行.....测试显示平均搜索性能   对于10,000个条目缓存,代表性查询为4.6毫秒,427毫秒   对于1,000,000个条目缓存。因此,独立实现是   适合开发和测试。

     

当使用没有BigMemory的独立Ehcache进行生产时,它就是   建议仅搜索少于100万的缓存   元素。不同标准的表现各不相同。例如,这里   是一些查询及其在200,000元素缓存上的执行时间。   (请注意,这些结果都比上面给出的时间快   因为他们执行一个标准。)

这里提到的两个重要的事情是 - 不同标准的表现各不相同,如果只有一个标准与多个标准,那就很重要了。虽然只能通过对用例进行基准测试才能找到对性能的实际影响 - 文档表明它有一定的效果。最好的方法是自己进行基准测试。