Ios JavaFX-使用-“外汇背景半径”;在CSS中,我的应用程序速度变慢了

Ios JavaFX-使用-“外汇背景半径”;在CSS中,我的应用程序速度变慢了,ios,css,performance,javafx,javafxports,Ios,Css,Performance,Javafx,Javafxports,所以情况就是这样。我正在使用JavaFXPorts实现一个应用程序,我想创建一个圆形的切换按钮。然后将此按钮放置在GridPane上,GridPane中还包含一个包裹在滚动窗格中的HBox。为了保持简单,我只给出了带有GridPane包含的节点的树 GridPane |___________ ToggleButton |___________ ScrollPane |__________ HBox |_______ 20

所以情况就是这样。我正在使用JavaFXPorts实现一个应用程序,我想创建一个圆形的切换按钮。然后将此按钮放置在GridPane上,GridPane中还包含一个包裹在滚动窗格中的HBox。为了保持简单,我只给出了带有GridPane包含的节点的树

GridPane
|___________ ToggleButton
|___________ ScrollPane
             |__________ HBox
                         |_______ 20+ Images here
所以,当我在iPhone5上编译这篇文章时,一切都运行得非常顺利。我可以水平滚动HBox并查看其中的图像

然而,当我使用下面的CSS代码时,情况开始发生变化。滚动的性能下降到了滞后的程度。在玩了这些样式之后,我注意到问题是由“-fx-(背景/边界)-radius”样式引起的。我认为这可能是一个bug。我还尝试了缓存节点,这可以提高一些速度,但仍然滞后

请注意,在iPhone 6上运行相同的应用程序时,它的性能正常

.rounded_button {
    -fx-background-color: transparent;
    -fx-background-insets: 0;
    -fx-text-fill: black;
    -fx-border-color: lightgray;
    -fx-font-size: 0.9em;
    -fx-pref-height: 33px;
    -fx-background-radius: 0em 1.5em 1.5em 0em; 
    -fx-border-radius: 0 1.5em 1.5em 0;
}
我还启用了脉冲记录器,以下是输出:

PULSE: 556 [73887ms:327ms]
T1 (-73886 +73887ms): Layout Pass
T1 (0 +14ms): CSS Pass
T1 (14 +2ms): Layout Pass
T1 (16 +0ms): Update bounds
T1 (17 +0ms): Waiting for previous rendering
T1 (17 +0ms): Copy state to render graph
T7 (18 +0ms): Dirty Opts Computed
T7 : 2 different dirty regions to render
T7 : Dirty Region 0: RectBounds { minX:183.0, minY:157.0, maxX:219.0, maxY:180.0} (w:36.0, h:23.0)
T7 : Render Root Path 0: [com.sun.javafx.sg.prism.NGRegion@578c420, com.sun.javafx.sg.prism.NGRegion@56314d0, com.sun.javafx.sg.prism.NGRegion@5631420, com.sun.javafx.sg.prism.NGRegion@4d03420, com.sun.javafx.sg.prism.NGRegion@adca630, com.sun.javafx.sg.prism.NGRegion@4d03160, com.sun.javafx.sg.prism.NGRegion@4d030b0, com.sun.javafx.sg.prism.NGRegion@49294d0, com.sun.javafx.sg.prism.NGRegion@49296e0]
T7 : Dirty Region 1: RectBounds { minX:310.0, minY:63.0, maxX:319.0, maxY:519.0} (w:9.0, h:456.0)
T7 : Render Root Path 1: [com.sun.javafx.sg.prism.NGRegion@578c420, com.sun.javafx.sg.prism.NGRegion@56314d0, com.sun.javafx.sg.prism.NGRegion@5631420, com.sun.javafx.sg.prism.NGRegion@4d03420, com.sun.javafx.sg.prism.NGRegion@adca630, com.sun.javafx.sg.prism.NGRegion@4d03160]
T7 (18 +0ms): Render Roots Discovered
T7 : Slow background path for null
T7 : Slow shape path for null
T7 : Slow background path for null
T7 : Slow shape path for null
T7 : Slow background path for null
T7 (18 +305ms): Painting
T7 (324 +0ms): Painting
T7 (325 +2ms): Presenting
Counters:
    CacheFilter rebuilding: 3
    NGRegion renderBackgroundShape slow path: 2
    NGRegion renderBackgrounds slow path: 3
    Nodes rendered: 57
    Nodes visited during render: 71
没有-fx背景半径-fx边界半径

PULSE: 1493 [89717ms:37ms]
T1 (-89717 +89717ms): Layout Pass
T1 (0 +13ms): CSS Pass
T1 (13 +1ms): Layout Pass
T1 (15 +0ms): Update bounds
T1 (16 +0ms): Waiting for previous rendering
T1 (16 +0ms): Copy state to render graph
T7 (16 +0ms): Dirty Opts Computed
T7 : 2 different dirty regions to render
T7 : Dirty Region 0: RectBounds { minX:183.0, minY:157.0, maxX:219.0, maxY:180.0} (w:36.0, h:23.0)
T7 : Render Root Path 0: [com.sun.javafx.sg.prism.NGRegion@542b420, com.sun.javafx.sg.prism.NGRegion@578a370, com.sun.javafx.sg.prism.NGRegion@578a2c0, com.sun.javafx.sg.prism.NGRegion@556e840, com.sun.javafx.sg.prism.NGRegion@556e0b0, com.sun.javafx.sg.prism.NGRegion@556e420, com.sun.javafx.sg.prism.NGRegion@556e370, com.sun.javafx.sg.prism.NGRegion@4c9f580, com.sun.javafx.sg.prism.NGRegion@4c9f630, com.sun.javafx.sg.prism.NGRegion@4c9f790, com.sun.javafx.sg.prism.NGRegion@4c9f8f0]
T7 : Dirty Region 1: RectBounds { minX:310.0, minY:63.0, maxX:319.0, maxY:519.0} (w:9.0, h:456.0)
T7 : Render Root Path 1: [com.sun.javafx.sg.prism.NGRegion@542b420, com.sun.javafx.sg.prism.NGRegion@578a370, com.sun.javafx.sg.prism.NGRegion@578a2c0, com.sun.javafx.sg.prism.NGRegion@556e840, com.sun.javafx.sg.prism.NGRegion@556e0b0, com.sun.javafx.sg.prism.NGRegion@556e420]
T7 (16 +0ms): Render Roots Discovered
T7 : Slow background path for null
T7 : Slow shape path for null
T7 : Slow background path for null
T7 : Slow shape path for null
T7 (17 +17ms): Painting
T7 (35 +0ms): Painting
T7 (35 +1ms): Presenting
Counters:
    CacheFilter rebuilding: 3
    NGRegion renderBackgroundShape slow path: 2
    NGRegion renderBackgrounds slow path: 2
    Nodes rendered: 57
    Nodes visited during render: 71
脉冲在37毫秒内完成,无需样式

先谢谢你

更新 您可以从下载源代码

下面是iPhone5的屏幕截图。当水平滚动包含按钮ABC、BCD、CDE等的HBox时,事情开始变得滞后。在右下角的图片上,是我删除.css样式后的屏幕截图,滚动效果很好

更新


感谢您的报道,我们已经创建了一个内部问题。如果您能与复制Gist/Pastebin的最小样本(代码、build.gradle和输出)共享Gist/Pastebin,这将对我们有所帮助。感谢you@Jos佩雷达:我现在已经更新了我的线程,包括与文件的链接。例如,-fx background radius处于启用状态时,水平滚动速度较慢。您还将注意到,加载此FXML需要一些时间。我认为组合框也是这个结果的原因之一。感谢you@Jos佩雷达:关于这个问题有什么消息吗?我检查了你的代码,当css出现时,我可以注意到一些稍慢的响应,但还没有定论。@JoséPereda我在这篇文章的末尾上传了两个视频,看到响应慢了很多。感谢你的报道,我们已经创建了一个内部问题。如果您能与复制Gist/Pastebin的最小样本(代码、build.gradle和输出)共享Gist/Pastebin,这将对我们有所帮助。感谢you@Jos佩雷达:我现在已经更新了我的线程,包括与文件的链接。例如,-fx background radius处于启用状态时,水平滚动速度较慢。您还将注意到,加载此FXML需要一些时间。我认为组合框也是这个结果的原因之一。感谢you@Jos佩雷达:关于这个问题有什么消息吗?我检查了你的代码,当css出现时,我可以注意到一些稍慢的响应,但还没有定论。@JoséPereda我在这篇文章的末尾上传了两个视频,以查看响应速度慢得多。