繁体   English   中英

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

[英]Will having more searchable attributes in ehcache reduce the performance of cache?

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

因此,我想知道会有这么多搜索属性会降低缓存的性能吗?

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

  1. 插入缓存后,搜索子系统将确保属性值与配置的预期类型匹配。
  2. 搜索时,您将不得不再次从映射中提取属性值-限于查询中使用的属性。

鉴于此,是的,属性的数量对put性能有直接影响,而对get的属性没有影响。

EhCache文档指出以下内容

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

使用不带BigMemory的独立Ehcache进行生产时,建议仅搜索少于100万个元素的缓存。 不同标准的性能有所不同。 例如,以下是一些查询及其在200,000个元素高速缓存上的执行时间。 (请注意,这些结果都比上面给出的时间快,因为它们执行一个条件。)

这里提到的两件重要的事情是:不同标准的性能各不相同,并且只有一个标准还是多个标准才是重要的。 尽管只能通过对用例进行基准测试来发现对性能的实际影响,但文档显示它会产生一定的效果。 最好的方法是自己进行基准测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM