gpt4 book ai didi

java - VisualVM 和 GlassFish

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:31 25 4
gpt4 key购买 nike

目前,我正在尝试消除我的 JSF/PrimeFaces Web 应用程序中的瓶颈。为此,我安装了 VisualVM 及其 GlassFish 插件。

我无法通过 JMX 明确地“分析”,但我可以生成“采样”输出。然而,此输出几乎显示了名为 $Proxy245.invoke() 的操作中的全部负载。

VisualVM sampling output

我自己的操作 (ch.diction.*) 和 SQL 交互逻辑 (com.mysql.jdbc.*),我一开始怀疑是瓶颈,似乎对这种缺乏性能。

正在显示的页面是一个包含数百条分页记录的 PrimeFaces 数据表。记录的数量确实会显着影响性能,如果不是唯一的话。

所以我的问题是:我如何找出 $Proxy245.invoke() 背后的内容,以便确定这种情况下的真正瓶颈?

提前感谢您的建议和最诚挚的问候

帕斯卡

最佳答案

$Proxy245 是由某些 AOP 生成的代理类您的情况下的框架尚不清楚是哪个。它用于拦截方法调用。因为它是生成的,所以你不会找到实际的来源,因为没有。我建议您使用 VisualVM(“线程”选项卡)生成线程转储并检查堆栈跟踪我很确定您会找到这种方法(可能不是第一次尝试,但会进行几次转储)。有了它,您可以找到最后调用此(代理)方法的方法链。

还尝试分析应用程序,而不仅仅是示例(Profiler 选项卡)。使用探查器,您可以确定这些是对同一方法的多次调用,还是只是一次不想结束的长调用。

关于java - VisualVM 和 GlassFish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15905691/

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