我的 JSF (webapp) 页面需要很长时间才能加载。通过firebug测试,大部分时间都花在等待服务器响应上。所以我认为服务器上的一些东西会占用时间。我一直在尝试使用基于 Netbeans 的分析器获得一些提示,但是在分析 CPU 性能时,它只显示了从某个时间点以来每种方法所花费的时间。因此,当我发送页面请求时,我无法弄清楚是什么占用了时间。
您能否就我应该如何获得这些信息提供一些提示,即在服务请求时哪些方法正在吃时间?
我的 JSF (webapp) 页面需要很长时间才能加载。通过firebug测试,大部分时间都花在等待服务器响应上。所以我认为服务器上的一些东西会占用时间。我一直在尝试使用基于 Netbeans 的分析器获得一些提示,但是在分析 CPU 性能时,它只显示了从某个时间点以来每种方法所花费的时间。因此,当我发送页面请求时,我无法弄清楚是什么占用了时间。
您能否就我应该如何获得这些信息提供一些提示,即在服务请求时哪些方法正在吃时间?
在服务器上花费的时间。首先,我会检查这是否意味着网络正在诱导延迟(您需要检查 firebug 如何测量这一点)。
如果您确认不是网络延迟问题,那么最好的方法是使用分析器,根据您的平台和应用程序的大小,您可以做出最佳选择。
例如,如果您的应用程序加载的类少于 65k,我会选择 jvisualvm,否则您可能会遇到问题。
启动 jvisualvm 后,您可以将其附加到您的应用程序进程中。一旦进入那里,我建议您首先尝试采样分析,它在资源消耗方面不那么激进(不确定您的场景有多大或负载有多大,仪器分析可能太重而无法支持)。
您只需要将 jvisualvm 附加到您的流程中,转到 Sampler 并按 Start 按钮,将在该时间点之后收集数据,因此在您激活采样后,您应该触发您的请求,也许几次这样您就可以得到更好地了解时间花在哪里。