首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VisualVM和GlassFish

VisualVM和GlassFish
EN

Stack Overflow用户
提问于 2013-04-09 23:11:13
回答 1查看 2K关注 0票数 3

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

我不能通过JMX显式地“分析”,但是我可以生成一个“采样”输出。但是,此输出在一个名为$Proxy245.invoke()的操作中显示了几乎所有的负载。

我自己的操作(ch.diction.*)和SQL交互逻辑(com.mysql.jdbc..*),我首先怀疑它们是瓶颈,似乎对这种性能的缺乏没有太大的影响。

所显示的页面是一个包含数百条分页记录的PrimeFaces数据表。记录的数量确实会显著影响性能,如果不是独一无二的话。

所以我的问题是:我如何才能找出$Proxy245.invoke()背后的原因,以便找出这个场景中真正的瓶颈?

预先感谢您的建议和良好的问候

Pascal

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-10 01:13:16

$Proxy245是由某个AOP框架生成的代理类,在您的例子中,不清楚是哪一个。它用于拦截方法调用。因为它是生成的,所以您将找不到实际的源代码,因为没有任何源代码。我建议你用VisualVM生成一个线程转储(线程选项卡),并检查堆栈跟踪我非常肯定你会找到这个方法(可能不是第一次尝试,但做几次转储)。这样你就可以找到方法链,这些方法在最后调用这个(代理)方法。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15905691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档