【问题标题】:Profile Java GUI application for responsivenessProfile Java GUI 应用程序的响应性
【发布时间】:2019-05-14 19:04:10
【问题描述】:

在开发 Java GUI 应用程序(基于 SWT 或 Swing,应该无关紧要)时,如何最好地分析响应能力,例如如果应用程序在某些操作(例如单击按钮直到发生某些事情)上感觉迟缓,会消耗时间。问题在于我的理解是延迟非常低(通常

【问题讨论】:

  • 您可以使用 JProfiler 并维护响应的基准。
  • @Sambit 你的意思是我调用了一些 JProfiler 特定 API 的启动和停止方法吗?
  • JProfiler 是一个用于分析应用程序的应用程序。您可以启动您的应用程序,而 JProfiler 必须挂钩您的应用程序。它将显示您的类中的方法所花费的时间。
  • 几乎所有的分析器不都是这样吗?这如何帮助我找到鼠标点击和获得结果(可能只需要 0.5 秒)之间的瓶颈?
  • 您会从 JProfiler 获得一份报告,关于单击鼠标、按键事件等时除内存外所花费的时间。在鼠标单击按钮时,如果应用程序挂起或需要更多时间,您可以分析更多的。最后由您决定基准。

标签: java user-interface profiling


【解决方案1】:

分析 UI 应用程序的问题在于,事件调度线程 (EDT) 上的调用通常源自其他线程或触发最终调用 EDT 上的某些内容的后台操作。这会使单独查看用户操作的效果变得困难。

JProfiler 有一个称为“异步跟踪”的功能,可以跟踪对 AWT 和 SWT 的事件调度线程的调用:

  1. 您必须使用仪器进行分析并启用跟踪:

  1. 然后您记录 CPU 数据并执行在 EDT 上触发操作的操作:

  1. 最后,单击“内联异步执行”以查看跨线程边界的调用树:

免责声明:我公司开发 JProfiler。

【讨论】:

    【解决方案2】:

    YourKit Java Profiler 具有内置探针,可自动记录所有超过 0.3 秒的 AWT/Swing 事件,这可能导致 UI 无响应: https://www.yourkit.com/docs/java/help/awtevents.jsp

    免责声明:我为 YourKit 工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      相关资源
      最近更新 更多