我有一个添加了Group
节点的JavaFX Path
,我每秒向其添加大约30次数据。这导致我的整个GUI在大约一分钟后变得非常迟缓且无响应。
首先,我将路径添加到Group
,如下所示:
root.getChildren().add(path);
数据添加如下:
while(true) {
// Calculate x and y...
path.getElements().add(new LineTo(x, y));
path.getElements().add(new MoveTo(x, y));
// Sleep 33 milliseconds...
}
如果我没有添加组的路径,但之后仍然添加数据,GUI仍然保持响应,因此在绘制路径的形状时似乎存在性能问题。为什么?我该怎么做才能提高性能?知道这件事发生了还是我做错了什么? 谢谢!
答案 0 :(得分:6)
JavaFX 2.1中存在与路径性能相关的已知问题(creating paths is very slow)以及JavaFX 2.2中未解决的另一个类似问题(improve path rendering performance)。如果您查看JavaFX issue tracker system,可能还有其他问题。对于目前正在开发的JavaFX8,许多元素的性能都是vastly improved。
您可以尝试的另一种方法是使用Canvas而不是路径。取决于你的用例,对于某些用例,这将是一个合适的替代,对于其他人则不会。
如果您可以创建一个简短的可重现测试用例并为其提交JavaFX问题,JavaFX团队将调查您遇到的任何性能问题,如果它们是由底层系统实现引起的,则可能会解决这些问题。
您还应检查以下内容的实施情况:
不是说你的代码有任何上述问题,只是要检查的事情。