繁体   English   中英

JavaFX压力测试失败

[英]JavaFX stress test failed

我们正在考虑将JavaFX 2.2作为构建桌面应用程序的框架。 但是在消耗大量开发人员时间之前,我们希望确保JavaFX适合该工作,因此我们进行了一次小型压力测试,以查看其是否泄漏了资源。 该测试以永无止境的循环显示和隐藏包含标签和按钮的舞台。 我们希望这种情况可以永远持续下去,但是在大约15500次迭代之后,我们得到了这个异常

java.lang.RuntimeException: could not create platform window
at com.sun.glass.ui.Window.<init>(Window.java:180)
at com.sun.glass.ui.win.WinWindow.<init>(WinWindow.java:20)
at com.sun.glass.ui.win.WinApplication.createWindow(WinApplication.java:97)
at com.sun.javafx.tk.quantum.WindowStage.initPlatformWindow(WindowStage.java:131)
at com.sun.javafx.tk.quantum.WindowStage.init(WindowStage.java:82)
at com.sun.javafx.tk.quantum.QuantumToolkit.createTKStage(QuantumToolkit.java:501)
at javafx.stage.Stage.impl_visibleChanging(Stage.java:928)
at javafx.stage.Window$10.invalidated(Window.java:689)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:127)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:161)
at javafx.stage.Window.setShowing(Window.java:782)
at javafx.stage.Window.show(Window.java:797)
at javafx.stage.Stage.show(Stage.java:229)
at leaktest.FXMLController.showHideDialog(FXMLController.java:58)

最好的猜测是,舞台上的show()/ hide()会泄漏一些资源,而dheapmon揭示了在测试期间桌面堆内存实际上已泄漏,但是我们没有达到极限(在测试机上为20 MB)。 GDI句柄和USER句柄限制也不是问题,因为这些句柄没有泄漏(根据Process Explorer)。 对导致异常的原因有何建议?

这是JavaFX的窗口处理代码中的内存泄漏。 作为漏洞修复RT-26822 Win的一部分,JavaFX 2.2.40中修复了该漏洞:舞台异常:无法创建平台窗口

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM