JProfiler 无法分析 Swing 应用程序中嵌入的 JavaFX

问题描述 投票:0回答:1

我多年来一直使用 CPU 记录成功地分析了 Swing 桌面应用程序。 当我添加如下 JavaFX 视图时:

var fxPanel = new JFXPanel();
this.add(fxPanel);
Platform.runLater(() -> {
   var root = new BorderPane();
   Scene scene = new Scene(root, Color.WHITE);
   fxPanel.setScene(scene);
});

并尝试分析我在

BorderPane
中创建的名为
root
的 gui,调用树中没有显示任何与 JavaFX 相关的内容。

有一个用户操作添加了许多 JavaFX 节点,甚至需要一秒钟以上才能在 JavaFX 应用程序线程上完成,但 JProfiler 调用树中仍然没有任何内容。如何分析 JavaFX GUI 创建调用树?

我正在 macOS Sonoma 14.5 上从 IntelliJ 启动 JProfiler 13.0.7。

swing javafx jprofiler
1个回答
0
投票

调用树中没有显示任何与 JavaFX 相关的内容。

调用树中显示的内容由 JProfiler 中的调用树过滤器决定。默认情况下,新会话具有“紧凑”过滤器列表:

compact filters

这意味着只会显示从分析类对此类类的第一次调用,但不会显示内部调用结构。

这些过滤器未包含的所有类都将被分析。

建议删除此默认值并添加您自己的顶级包作为“分析器”过滤器。如果您使用 IDE 集成,这将自动完成。使用“配置文件”过滤器时,对话框如下所示:

profiled filters

在您的情况下,从 IntelliJ 开始分析并从“会话启动对话框”编辑“调用树过滤器”:

enter image description here

您可以在此处检查包含 JavaFX 应用程序的包是否包含在调用树过滤器中。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.