Grails性能问题

时间:2016-12-26 22:38:25

标签: performance grails groovy

在请求处理期间,我需要加载很多实体(两种)。也许4或5千。其中大多数是从二级缓存提供的。问题是依赖注入,它应用于杀死应用程序性能的每个域类。

Profiler显示瓶颈是 org.codehaus.groovy.grails.plugins.web.api.ControllersDomainBindingApi.autowire ,它调用 GrailsMetaClassUtils.invokeMethodIfExists

我尝试从 Controller Service 类加载实体。结果是一样的。

是否可以针对特定情况或类禁用此不必要的 DI 功能?

我的Grails版本 2.3.11

Java 1.8

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用显式延迟抓取或批量抓取?您可以查看official docs上的示例和进一步说明。

顺便说一下,通常最好只在内存中存储这些大集合的ID并在处理它们时逐个加载它们(以避免在获取对象和处理它们之间可能出现的不一致)

答案 1 :(得分:0)

您可以在<ng-container *ngIf="data"> <child1></child1> <child2></child2> </ng-container> (适用于Grails 3)或grails-app/conf/runtime.groovy(适用于使用GORM 5/6的Grails 2)中使用以下配置在较新版本的Grails中禁用依赖项注入:

grails-app/conf/Config.groovy