当前位置: 首页 > 知识库问答 >
问题:

将ehcache与terracotta一起使用时忽略注释

姜鸿畴
2023-03-14

我在我的应用程序中使用带有陶土的ehcache。当我使用带有陶土的ehcache时,我的响应时间增加了700倍。我认为陶土需要时间来测量物体的大小,因为它给了我警告:

net.sf.ehcache.pool.sizeof。ObjectGraphWalker checkMaxDepth警告:在尝试计算对象图的大小时,已达到1000个对象引用的配置限制。如果继续调整大小操作,可能会出现严重的性能下降。这可以通过将CacheManger或Cache元素MaxDepthexceedBehavior设置为“中止”或添加带有@IgnoreSizeOf注释的停止点来避免。如果在配置的限制下性能下降不是问题,请使用CacheManager或Cache elements maxDepth属性提高限制值。有关更多信息,请参阅Ehcache配置文档。

当我在我的课堂上使用@IgnoreSizeOf注释时,响应时间缩短了很多。我的问题是使用@IgnoreSizeOf注释是否有任何缺点。对于它正在使用的内容以及它如何减少我的应用程序的响应时间,请提供帮助。提前致谢。

共有1个答案

朱承载
2023-03-14

此注释与Terracotta集群无关。我猜你发布了关于这个主题的另一个问题。

@IgnoreSizeOf批注将具有sizeOfEngine,它测量缓存中条目的内存占用,忽略缓存条目的批注类(或整个包)或子图(批注字段)的实例。

因此,如果您缓存的对象图具有“共享”子图,则需要注释该图形以注释开头的字段。如果您忽略所有内容,则不会调整任何内容的大小,并且maxBytesLocalHeap设置没有语义(您最终会遭受OOME的困扰)。

为了正确使用注释,您需要理解您正在缓存的对象图。详情请见http://ehcache . org/documentation/configuration/cache-size # built-in-sizing-computation-and-enforcement。

现在,对于您看到的性能问题,您可能希望使用和不使用 maxBytesLocalHeap 设置以及是否使用群集进行测试,以尝试查明问题。但我怀疑你的缓存可能比你预期的要多,导致大男人足迹,以及开销集群数据......

 类似资料:
  • 我在terracotta中使用ehcache,我想知道在这样的上下文中属性maxElementsOnDisk的含义是什么。 这是否意味着赤陶层上允许的最大元素数? 如果不是,控制塔拉科塔图层上允许的元素数量的属性是什么? 如果我理解正确,maxEntriesLocalHeap表示本地堆层上允许的条目数,它可以溢出到可以溢出到磁盘的兵马俑层(如果我错了,请纠正我),但我不确定控制每个元素的元素的名称

  • 我在两台服务器上使用带有兵马俑的分布式ehcache。在我的缓存管理器中,我有多个缓存。但是现在我有一个要求,每当一个元素被添加到1个服务器上的1个特定缓存中时,我都希望得到第二个服务器上的通知。我尝试使用缓存事件通知程序,但这可以在本地工作。你能不能帮我弄清楚我能做什么。我是否可以将复制机制与 terracotta 一起使用来解决此问题,因为通过在 1 个缓存上使用复制,我将在其他服务器上获取该

  • 我正在尝试将圣杯2.1.1与兵马俑和Eccache集成,但我没有得到任何好的结果。 任何人都可以给我一些建议来配置它吗?我有点困惑。

  • 问题内容: 我正在使用Json.Net将类序列化和反序列化为json并返回。 我在标有(或)新的仅获取属性的类中添加了代码。结果如下: Newtonsoft.Json.JsonSerializationException:在JSON中找不到必需的属性 我以为标记该属性可以解决此问题,但这不起作用。 我如何告诉Json.Net应该忽略此属性? 这是重现此问题的最小示例: 问题答案: 显然,在这种情况

  • 我可以使用注释将jdbi查询的结果映射到我感兴趣的bean,如下所示: 如果应用程序中使用的实例尚未注册到任何自定义映射器中,则此操作很好。 此映射器在应用程序开始时注册到实例,如下所示: 重写方法,并提供逻辑将任何类型的结果从数据库转换为相关的bean类型。正是这个uber转换器负责整个应用程序中所有DB到POJO的转换。 我的问题是:有没有一种方法可以告诉继续使用这个将结果从数据库转换为所有类

  • 我的函数包括不同的javax查询注释,例如:、、等。。 调用joinPoint时有没有排除这些参数的方法。getArgs()? 例子: 我想这样做的原因是我有几个URL,同时将大约10%标记为持久性。这意味着我希望将输入数据保存在某个持久服务中。查询