Java ehcache中有更多的可搜索属性会降低缓存的性能吗?
我正在一个项目中工作,我们正在使用ehcache。我们大量使用搜索API,使用的值大约有5-7个搜索属性Java ehcache中有更多的可搜索属性会降低缓存的性能吗?,java,caching,ehcache,Java,Caching,Ehcache,我正在一个项目中工作,我们正在使用ehcache。我们大量使用搜索API,使用的值大约有5-7个搜索属性 所以,我想知道拥有这么多的搜索属性会降低缓存的性能吗?在开源Ehcache中,搜索功能使用暴力。这意味着搜索成本的支付方式如下: 在插入缓存时,搜索子系统将确保属性值与配置的预期类型匹配 在搜索时,必须再次从映射中提取属性值-仅限于查询中使用的属性 因此,属性的数量对put有直接的性能影响,但对get没有直接的性能影响 搜索操作在O(n)时间内执行…..测试显示搜索性能平均为 以4.6毫秒的
所以,我想知道拥有这么多的搜索属性会降低缓存的性能吗?在开源Ehcache中,搜索功能使用暴力。这意味着搜索成本的支付方式如下:
put
有直接的性能影响,但对get
没有直接的性能影响
搜索操作在O(n)时间内执行…..测试显示搜索性能平均为
以4.6毫秒的速度对10000条缓存进行代表性查询,以427毫秒的速度进行代表性查询
对于1000000条目的缓存。因此,需要独立实现
适合开发和测试
在生产中使用不带BigMemory的独立Ehcache时,它是
建议只搜索小于100万的缓存
元素。不同标准的表现各不相同。比如说这里,
是一些查询及其在200000元素缓存上的执行时间。
(请注意,这些结果都比上面给出的时间快。)
因为它们只执行一个条件)
这里提到的两件重要的事情是——不同标准的性能不同,如果有一个标准与多个标准,这很重要。虽然只有通过对用例进行基准测试才能发现对性能的实际影响,但文档表明它有一定的效果。最好的方法是自己进行基准测试