【发布时间】:2020-04-09 04:54:18
【问题描述】:
我正在构建一个 JavaFX-应用程序。我知道它正在使用反射,并且反射可能没有我在代码中构建 UI 时那么快。
所以,
- 如何设计我的控制器以保持开销,即由反射引起的开销尽可能小?
- 带有/不带有
@FXML-Annotation 的方法的大小是否重要? - 当我在控制器方法中调用另一个没有
@FXML的方法时,有什么区别吗?喜欢:
@FXML
public void handleButtonClick(){
doStuff();
}
public void doStuff(){
//implement the logic
}
- 如果这样做,我应该在控制器类中还是在另一个类中实现这些方法?
P.S.我很抱歉一次问了这么多问题,但我在互联网上找不到这些具体的东西:(
【问题讨论】:
-
您的应用程序是否遇到过缓慢的情况?通常,在需要之前尝试优化事物并不是一个好主意。它可以增加代码的复杂性并带来相应的回报。如果您遇到缓慢的问题,开始调查的好地方是使用分析器。
-
我会说,根据我自己的分析经验,设置表格视图单元格的样式(更改颜色)是迄今为止我的应用程序中最昂贵的事情。创建一个可以在不使用样式的情况下更改其颜色的自定义单元格类修复了该问题。
-
通常只有实现本身会让你的 controller 变慢。调用方法确实会引入一些开销,但不是很重要;除非您调用这些方法的频率无论如何都会冻结您的应用程序,否则您可能看不到任何区别。如果您询问是什么让 fxml 加载过程变慢:有很多因素(提供 fxml 的输入流的速度、类加载器的速度、fxml 中使用的类数量、fxml 的大小、控制器类等(大小指成员数))...
-
使用分析器而不是假设..
标签: java user-interface javafx fxml