从桌面客户端应用程序收集性能分析统计数据

3

我有很多客户使用某个桌面应用程序的实例。 有些用户在使用某些特定的重现步骤和他们的私人执行上下文时会遇到性能问题(比如说使用一些他们不想与任何人分享的私人小猫照片)。

我希望尽量减少与用户的沟通并在我的开发环境中成功复现他们的问题。 由于法律原因,我不能使用他们的执行上下文。

所以,我唯一看到的选择是收集应用程序使用统计信息(例如,方法调用、CPU负载因子)。 理想情况下,我希望简化用户的生活,只需要在他们遇到问题时要求他们在应用程序中启用/禁用统计数据收集。所有其他操作(例如,捕获定制的统计数据,将统计数据传输给支持团队)都将在后台完成。

看起来这是一个非常普遍的需求。 是否有任何解决方案可以帮助实现所描述的行为?

2个回答

3

JProfiler 允许您免费分发性能分析代理,并在离线模式下操作。通过在JVM调用中添加特殊的VM参数(-agentpath:...)来激活性能分析代理。

然后,您可以使用Controller类记录数据并将快照保存到磁盘。桌面应用程序中用于记录统计信息的启动/停止按钮将调用这些方法。

如果应用程序经过混淆,JProfiler可以在打开快照时对其进行反混淆。

要设置所有这些内容,请在JProfiler中创建一个本地启动会话,然后选择...

Sesssion->Conversion Wizards->Convert Application Session To Redistributed Session

enter image description here

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

谢谢。离线分析是我真正需要的。有一些支持离线分析的性能分析工具,包括VisualVM,所以我会尝试它们。 - nickolay.laptev

0

分布式跟踪正是我所需要的。

Google 有一个 Dapper 项目,Twitter 也有一个包括 Spring Sleuth 在内的许多集成的 Zipkin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接