将Ehcache与Terracotta一起使用时忽略注释



我在应用程序中正在使用ehcache和terracotta。当我将Ehcache与Terracotta一起使用时,我的响应时间增加了700倍。我认为Terracotta在给我警告时花时间测量物体的大小:

net.sf.ehcache.pool.sizeof.ObjectGraphWalker checkmaxdepth 警告: 在 尝试计算对象图的大小。严重 如果尺寸操作继续进行,则可能会发生性能降解。 可以通过设置cachemanger或缓存来避免这种情况 元素MaxDepthexceededBehavior为"流产"或添加停止点 带有注释的@ignoresize。如果性能下降不是 以配置的限制发行,使用 cachemanager或缓存元素maxdepth属性。为了 更多信息,请参阅EHCACHE配置文档。

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

此注释与Terracotta聚类无关。我想您在此主题上发布了另一个问题。

@ignoresizeof注释将具有大小的发动机,该尺寸可以衡量您的缓存中条目的内存足迹,忽略带注释的类(或整个软件包)的实例(或整个软件包)或子图条目的子图(带注释的字段)。

因此,如果您缓存的对象图具有"共享"子图,则会注释该图从注释开始的字段。如果您忽略所有内容,那么都会大小,而maxbyteslocalheap设置没有语义(您最终会遭受OOME的痛苦)。

您需要了解您要缓存的对象图才能正确使用注释。有关更多详细信息

现在,对于您所看到的性能问题,您可能需要在有或没有Maxbyteslocalheap设置中进行测试,并且没有聚类来尝试将问题指向您的问题。但是我怀疑您可能会比您预期的更多缓存,从而导致大人物的足迹,并且高架集群数据...

最新更新