【问题标题】:JavaFX slows down backendJavaFX 减慢后端
【发布时间】:2018-05-22 03:00:57
【问题描述】:

这是一个学校项目。我们构建了一个 JavaFX GUI 来获取算法的输入。该算法在独立模式下仅运行 45 分钟。但是,当从 JavaFX GUI 调用时,运行时间会加倍。知道是什么原因造成的吗?此外,JavaFX GUI 消耗大约 400 Mb 内存,这正常吗?

感谢任何帮助。

玉莲

【问题讨论】:

  • 更多信息会有所帮助。你在哪里能够生成一个最小的、完整的和可验证的例子?就我个人而言,了解您是在主线程还是在后台线程上调用算法会有所帮助。 stackoverflow.com/help/mcve
  • 算法在主线程调用,在按钮点击方法中。
  • 我不确定这是否会导致问题,这可能是因为它是一个特殊线程并且可能会有一些开销。通常,在主线程上运行计算密集型算法并不是一个好主意。使 UI 冻结。所以你可能想尝试在后台线程中运行它
  • 您是否尝试过使用线程优先级?

标签: performance memory javafx


【解决方案1】:

算法和 GUI 绘制调用正在争夺内存,这将导致算法和 gui 都变慢。

为 java 运行时分配更多内存来解决这个问题

【讨论】:

  • 算法不会阻塞主线程,公会会冻结吗?因此没有公会调用会争夺计算时间或?
【解决方案2】:

如果需要优化 JavaFX 应用程序(性能方面),开发时需要牢记一些非常细微的事情:

1. 许多人认为他们应该使用纯JavaFX 编码来编写整个应用程序。这对于小型测试应用程序可能很好。但是当我们写真实世界的应用程序时,我们需要将 I/O 部分、业务逻辑和所有非 UI 相关的代码划分到不同的层。

2. 使用JavaFx Api Async + 回调方法,以便在 Event-Dispatch-Thread 之外执行这些代码。

【讨论】:

    猜你喜欢
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 2020-02-29
    • 1970-01-01
    相关资源
    最近更新 更多