gpt4 book ai didi

grails - 性能问题碧 Jade 报告和grails/groovy

转载 作者:行者123 更新时间:2023-12-02 14:12:14 25 4
gpt4 key购买 nike

在grails应用程序中使用Jasper Reports时,生成PDF时遇到严重的性能问题。我正在调用jasperService:

def reportDef = jasperService.buildReportDefinition(parameter, LocaleContextHolder.getLocale(), [data: emptyData])

在Jboss中运行了几次,性能很好。 X个小时后,性能比Jboss启动后差了100倍以上。对于只创建一页的PDF,响应时间从7-12秒变为几分钟。我确定性能延迟是在此调用之内的,因为我已在其周围添加了时间度量。由于报表数据是在参数内传递的,因此我也可以排除数据库连接问题。

我已经分析了HEAP,但它的使用率约为50%,并且在创建PDF时变化不大。整体内存也未完全使用。
我已经分析了PermGen,但是还远远不够。

知道PDF的创建会非常消耗CPU,因此在创建过程中CPU会永久以100%的速度运行。我确保没有其他进程阻止PDF的创建,首先,通过多次重新启动该进程,并且没有任何差异,因此我可以排除外部中断;第二,如果重新启动JBoss,性能会更好。

由于这些事实,我已经开始在运行PDF创建线程时通过分析线程转储来分析JBoss本身。我看到没有其他任何东西在运行(除了线程转储线程),无论重启后是慢还是快。我可以看到Groovy在多个线程转储中进行了几个AST转换,这对于Groovy来说并不奇怪。

现在,我感到绝望。 HEAP / PermGen正常,CPU正常。 Jasper Reports / Grails在做什么?

也许有人有类似的经历或根本原因的想法? Jasper Reports中是否有需要/应该清除的内容?

编辑:我的进一步分析得出了JBoss 7.1.1(最新稳定版)是根本原因的未经证实但可以确定的结果。在Tomcat上安装该应用程序后,几天后一切都将顺利运行。我会保持开放。也许有人有过相同的经历并且喜欢张贴它...?否则,我将使用此解决方案将其关闭。我可能会在早期版本的Jboss或7.2 / 7.3上测试我的应用程序。

最佳答案

解决方案是,我们没有意识到JBoss会部分忽略我们的Log4J配置,而是大量登录到我们未监视的server.log中。 Jasper和Grails插件正在将每个PDF生成的数十MB写入日志文件。删除这些日志插入后,性能再次良好。

关于grails - 性能问题碧 Jade 报告和grails/groovy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19049003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com