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

尝试计算对象图的大小时,已达到 1.000 个对象引用的配置限制

谷梁楚青
2023-03-14

我有一个jhipster项目,我添加了一些实体。
我的服务非常慢,因为此警告消息:

在尝试计算对象图的大小时,已达到配置的1.000个对象引用的限制。如果继续调整大小操作,可能会出现严重的性能下降。这可以通过设置CacheManager或Cache来避免

我可以做些什么来增加这个限制或取消项目中的缓存?

共有2个答案

龙博
2023-03-14

您可以在资源/ehcache中添加以下标记。property maxdepthexceedbehavior=abort避免减慢服务速度。此外,您还可以更改maxDepth以增加限制。

<sizeOfPolicy maxDepth="1000" maxDepthExceededBehavior="abort" />
淳于禄
2023-03-14

以下是Ehcache官方留档关于缓存条目大小的说法:

放在内存有限缓存中的元素将测量它们的内存大小。添加到缓存中的整个Element实例都会被测量,包括键和值,以及将该实例添加到内部数据结构的内存占用。键和值作为对象图进行测量——跟踪每个引用,并测量对象引用。这是递归进行的。

共享引用将由引用它的每个类来度量。这将导致夸大其词。因此,应忽略共享引用。

调整缓存大小涉及遍历对象图,此过程可以通过注释进行限制。此过程还可以在缓存管理器和缓存级别进行控制。

通过在< code > resources/ehcache . XML 中的CacheManager级别添加以下元素,控制调整堆上元素大小时引擎的大小可以达到的深度

<sizeOfPolicy maxDepth="100" maxDepthExceededBehavior="abort" />  

此元素具有以下属性:

>

  • maxDepth,它控制在引擎大小采取任何操作之前可以访问多少链接对象。此属性是必需的。

    maxDepthExceededBeustor指定在调整对象图时超过最大深度时会发生什么。此文件的可能值是:

    continue,这将强制引擎的大小记录警告并继续大小调整操作。如果未指定此属性,继续是使用的行为

    < code>abort,强制大小调整引擎中止大小调整,记录警告,并将缓存标记为未正确跟踪内存使用情况。使用此设置,< code > ehcache . hasabortedsizeof()返回< code>true

    SizeOf策略可以在缓存管理器级别配置(直接在< code >下

  •  类似资料:
    • 问题内容: 我想记录一个对象占用一个项目的内存量(以字节为单位)(我正在比较数据结构的大小),并且似乎没有方法可以在Java中完成。据说C / C ++有方法,但这在Java中不存在。我尝试在创建对象之前和之后记录JVM中的可用内存,然后记录差异,但是无论结构中元素的数量如何,它只会给出0或131304,并且两者之间什么都没有。请帮助! 问题答案: 你可以使用该软件包: http://docs.o

    • 我想停止服务,但出现以下错误: 尝试调用虚拟方法的布尔值。所容纳之物上下文空对象引用上的stopService(android.content.Intent) 这是我停止服务的方法(在类): 这是我在另一个类中调用该方法的方式: 代码。startService(getContext()) 工作正常,但

    • 我有一个计时器在第二个活动中。我想从main activity访问它,所以我将chronometer作为public static放在第二个activity中,并将“secondactivity.chronometer”放在main activity中,但是当启动应用程序时,它在空对象引用上显示,我已经检查了xml id是否正确。有人知道怎么解决这个问题吗?

    • 我想通过ActiveMQ传递一条大消息。还有两个消费者/生产者。第一个是基于Spring MVC构建的,第二个使用Apache camel从队列中获取消息。问题是,我试图推送一条包含大约10 mb数据的短信,但ActiveMQ代理拒绝了它,并显示错误消息。 org.springframework.web.util.NestedServletException: 请求处理失败;嵌套异常是Java .

    • 我知道使用以下方法限制对象的上载大小:http://doc.s3.amazonaws.com/proposals/post.html#limiting_uploaded_content 但是我想知道如何在服务器端以IAM用户的身份使用S3 SDK生成预签名url的同时完成。

    • 我的应用程序有问题,我想解决它,但我无法访问解决方案,请帮助我,,,