【问题标题】:java web application, check if any request taking more than certain amount of timejava web应用程序,检查是否有任何请求花费超过一定时间
【发布时间】:2014-02-17 09:36:54
【问题描述】:

我不确定这是否是此类问题的合适平台。

我正在开发一个在后端和前端 html、jquery 中使用 JPA(带有播放框架)的 Java Web 应用程序。对于某些请求,系统花费的时间超过了要求的时间,有些请求花费了超过 20 秒。

我的问题是,是否有工具或方法可以识别花费超过指定时间的请求/线程。

谢谢。

编辑:我正在寻找一种可以在生产服务器中长期使用的工具,而不是 Eclipse 分析器。

【问题讨论】:

  • JVisualVM, jconsole,用于查找 JAVA 远程应用程序,每个方法花费多少时间。 JProfiler 是另一个工具,可以添加到 eclipse 来监控应用程序

标签: java profiling monitoring


【解决方案1】:

我在类似的情况下使用过SIMON。 编辑:是的,它确实有一个不错的web console

【讨论】:

  • 谢谢。 +1为您的答案。我正在寻找这样的东西。它是否生成报告。我正在检查这个,但只是想问你是否知道。
【解决方案2】:

为了衡量 Java Web 应用程序上任何请求的性能,您可以使用过滤器,如下例所示:

http://blog.actuanceconsulting.com/servlet-filter-java-performance-logging/

为了衡量任何方法的性能,您可以使用嵌入在方法中的System.currentTimeMillis,但最好使用切面,将时间度量与业务代码分离。此外,您可以将其删除并通过配置添加。有关更多信息,请查看以下内容:

http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/aop.html

如果数据库连接是原因,您可以设置连接超时。

我还建议你看看 perf4j:

http://perf4j.codehaus.org/

【讨论】:

  • 感谢您的回答。但我想在生产服务器中做到这一点。一个可以长期使用的工具,可以正确报告什么请求/线程花费了超过一定时间。
  • 上述方法可以做到这一点。 +1
  • @NickJ - 我可能没有理解正确,但只是为了确认,你是说,我应该去每个控制器函数并添加 System.currentTimeMillis。
  • 没有。使用过滤器、方面或 perf4j(按复杂性和功能排序,从少到多)
  • @Andres - 我正在使用 Play 框架。我不认为我有过滤器的选项。 :( 检查方面或 perf4j
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
  • 1970-01-01
  • 2020-07-28
  • 2016-07-29
  • 2021-07-29
  • 1970-01-01
相关资源
最近更新 更多