Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ehcache中有更多的可搜索属性会降低缓存的性能吗?_Java_Caching_Ehcache - Fatal编程技术网

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

Java ehcache中有更多的可搜索属性会降低缓存的性能吗?,java,caching,ehcache,Java,Caching,Ehcache,我正在一个项目中工作,我们正在使用ehcache。我们大量使用搜索API,使用的值大约有5-7个搜索属性 所以,我想知道拥有这么多的搜索属性会降低缓存的性能吗?在开源Ehcache中,搜索功能使用暴力。这意味着搜索成本的支付方式如下: 在插入缓存时,搜索子系统将确保属性值与配置的预期类型匹配 在搜索时,必须再次从映射中提取属性值-仅限于查询中使用的属性 因此,属性的数量对put有直接的性能影响,但对get没有直接的性能影响 搜索操作在O(n)时间内执行…..测试显示搜索性能平均为 以4.6毫秒的

我正在一个项目中工作,我们正在使用ehcache。我们大量使用搜索API,使用的值大约有5-7个搜索属性


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

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

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

    搜索操作在O(n)时间内执行…..测试显示搜索性能平均为 以4.6毫秒的速度对10000条缓存进行代表性查询,以427毫秒的速度进行代表性查询 对于1000000条目的缓存。因此,需要独立实现 适合开发和测试

    在生产中使用不带BigMemory的独立Ehcache时,它是 建议只搜索小于100万的缓存 元素。不同标准的表现各不相同。比如说这里, 是一些查询及其在200000元素缓存上的执行时间。 (请注意,这些结果都比上面给出的时间快。) 因为它们只执行一个条件)

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