彩票走势图

好用的Java剖析/测试工具JProfiler v12.0新版本正式发布

原创|产品更新|编辑:郑恭琳|2021-02-24 09:44:26.053|阅读 1178 次

概述:JProfiler 12.0引入了火焰图,可以方便地在上下文菜单中添加和删除着色。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

JProfiler 12.0引入了以下显着的新功能:

1、火焰图已添加。所有显示调用树的视图都可以替换为火焰图,在一张图像中显示调用树的全部内容。调用从火焰图的底部发出,并向顶部传播。

火焰图被实现为调用树分析,并嵌套在当前调用树视图下方。通过在调用树中选择一个节点,可以为火焰图设置初始根节点。

子节点按字母顺序排序,并以其父节点为中心。由于在每个节点上花费的自学时间,“火焰”逐渐向顶部变窄。有关节点的更多信息显示在工具提示中。

火焰图具有很高的信息密度。您可以放大感兴趣的区域,或通过双击它来设置新的根节点。如果连续更改根多次,则可以在根历史中再次移回。

分析火焰图的另一种方法是根据类名称,程序包名称或任意搜索词添加颜色。第一个匹配的着色用于每个节点。

可以方便地在上下文菜单中添加和删除着色。


除了着色之外,您还可以使用快速搜索功能来查找感兴趣的节点。使用光标键可以在显示当前突出显示的匹配的工具提示时,在匹配结果之间循环。

火焰图不仅可用于顶级调用树视图,而且还可用于其他调用树分析的结果,例如Collapsed递归”。


2、对Netty的支持已添加。先前的“Servlet”探针和Netty功能已合并到新的“HTTP Server”探针中。

如果您正在运行基于NettyWeb服务器(例如Spring ReactorVertxKtor),则HTTP Server探针将为您显示拦截的URL,其中包含调用计数及其总和平均处理时间。


HTTP Server探针的事件视图可以按时间顺序列出单个URL拦截。


就像Servlet容器一样,调用树针对每个URL进行了拆分,因此您可以分别查看关联的子树。


为了确定拆分的粒度以及显示的URL,除了Servlet脚本之外,HTTP服务器探针的探针设置现在还提供了通用的拆分脚本。


与提供来自Servlet APIHttpRequest对象作为参数的Servlet脚本不同,Netty环境在使用几个不兼容的API时不稳定。这就是JProfiler通过其自己的API提供HttpRequest参数以提供对常见请求属性的访问的原因。高级用例可以通过getRequestObject()方法获取底层的Netty请求对象。


Servlet脚本一样,您可以配置脚本列表以在调用树中创建多个嵌套的拆分级别。提供了一些用于常见任务的脚本模板。


Netty主要用于HTTP请求的异步处理。由于相关联的线程更改,调用树中URL下方的子树将不会显示对请求的完整处理。

使用JProfiler中的异步请求跟踪功能,您可以遵循整个执行流程。大多数框架(例如Spring Reactor)都使用执行程序进行异步处理,因此必须激活“执行程序”请求跟踪类型。如果您使用的是基于Kotlin协程的服务器(如Ktor),则“Kotlin协程”是必需的跟踪类型。


如果使用了异步跟踪,则调用树视图将建议在视图顶部以及发起异步调用的调用站点上内联异步执行。

然后,“内联异步执行”分析的结果将包含所有涉及线程的单个调用树,该调用树向您显示特定请求URL的全部处理,并针对所有匹配的请求进行累计。


3、SSH远程附加功能现在支持附加到在Docker容器中运行的JVM

首先使用快速连接功能和到远程Linux机器的SSH隧道。


最初,列出了直接在远程计算机上运行的JVM进程。远程附加对话框顶部的一行显示了当前选定的远程Docker容器。


通过切换容器超链接,您可以选择一个正在运行的Docker容器。


选择Docker容器后,将显示其中运行的所有JVM。然后,JProfiler将使用Docker命令在选定的容器中自动安装性能分析代理,准备进行性能分析的JVM并将性能分析协议传输到外部。


如果SSH登录用户不在docker组中,则可以先切换远程用户。


4、附加功能已通过多种方式进行了改进。

现在,在“附加”对话框中显示了使用“-agentpathVM参数进行概要分析的JVM,用于本地和远程附加。这些JVM在启动时正在等待JProfiler GUI的连接。在这种状态下,JVM中的常规附加机制尚不可用,因此必须实现替代的附加机制。


以前,连接到远程计算机时,JRE必须可供登录用户使用,否则连接将失败。从此发行版开始,JVM列表中会显示一条消息,其中包含一个超链接,用于手动输入JRE的路径。这样,您可以切换到可以访问JRE的用户,也可以切换到包含JREDocker容器。


以前,在远程计算机上更改用户时,无法拍摄HPROF快照。在此版本中,已实现了一种在帐户之间传输堆转储数据的方法,并且现在启用了“仅堆转储”操作。


5、通过类加载器对类进行分组的检查已添加到堆遍历器中。此检查对java.lang.Class对象进行分组,并且与可以通过其类加载器对实例进行分组的现有检查互补。

检查的结果可以包括其java.lang.Class对象包含在当前对象集中的类,也可以包括在当前对象集中具有实例的类。


在顶部的分组表中选择类加载器时,相应的java.lang.Class对象显示在下面的数据视图中。


6、现在支持Jakarta EE 9Jakarta EE 9API的软件包从javax.*切换到jakarta.*JProfiler现在支持“HTTP服务器”探针的旧软件包和新软件包。

JProfiler UI中编写URL拆分脚本时,可以使用javax.servlet.http.HttpServletRequest请求对象作为参数。如果配置文件容器支持Jakarta EE 9,则对Servlet API的调用将透明地转换为jakarta.servlet.命名空间。


7、NetBeans插件已得到改进。已添加操作以附加到正在运行的JVM。这对于分析不使用exec插件的Maven项目以及JProfiler插件无法将VM参数插入Java调用的Gradle项目尤其重要。


添加了首选项页面,您可以在其中调整JProfiler可执行文件以及用于打开新的性能分析会话的窗口策略。所有其他设置在会话启动对话框中仍然可用,并分别为每个NetBeans项目保存。


8、JProfiler具有新的跨平台光照模式。这是IntelliJ IDEA平台的新外观。


9、已添加到简体中文的本地化版本。如果您的计算机的语言环境是zh_CN”,则安装程序将自动选择它,否则您可以在常规设置对话框中切换语言。


10、添加了对Alpine Linux上的配置文件的支持。Alpine Linux因其较小的映像尺寸而特别受Docker欢迎。它使用与其他Linux发行版不同的C标准库,因此本机性能分析代理需要单独的端口。

从此发行版开始,JProfiler中包含musl-x64体系结构。

11、已添加对macOS ARM上的配置文件的支持。虽然可以通过Rosetta在基于ARM的新macOS机器上对为x86架构编译的JVM进行性能分析,但直接为新ARM架构直接编译的新JVM需要不同的本机性能分析代理。

从此版本开始,macOS配置文件代理是通用二进制文件,其中包含针对x64ARM64的实现。

12.0版本发布时,JProfiler尚未与ARM JRE捆绑在一起,因此JProfiler GUI将通过RosettamacOS ARM机器上运行。预计将在相应的JRE可用后不久发布包含ARM JRE的版本。



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP