我需要创建一个 100fps 动画来显示每秒包含 100 帧的文件中的 3D 数据。但是javaFx中的AnimationTimer只允许我获得60fps。如何克服它?
删除 JavaFX 帧速率上限
您可以通过设置系统属性来删除 60fps JavaFX 帧速率上限,例如,
java -Djavafx.animation.fullspeed=true MyApp
这是一个无记录且不受支持的设置 https://stackoverflow.com/questions/18439861/where-can-i-find-java-prism-render-possible-options-and-documentation.
删除 JavaFX 帧速率上限可能会使您的应用程序在资源使用方面的效率显着降低(例如,没有帧速率上限的 JavaFX 应用程序将比具有帧速率上限的应用程序消耗更多的 CPU)。
配置 JavaFX 帧速率上限
此外,您可以尝试另一个未记录的系统属性:
javafx.animation.framerate
我没试过。
调试 JavaFX 帧(脉冲)
有其他设置如-Djavafx.pulseLogger=true http://JavaFX%208%20has%20a%20Pulse%20Logger%20(-Djavafx.pulseLogger=true%20system%20property)%20that%20%22prints%20out%20a%20lot%20of%20crap%22%20(in%20a%20good%20way)%20about%20the%20JavaFX%20engine's%20execution.%20There%20is%20a%20lot%20of%20provided%20information%20on%20a%20per-pulse%20basis%20including%20pulse%20number%20(auto-incremented%20integer),%20pulse%20duration,%20and%20time%20since%20last%20pulse.%20The%20information%20also%20includes%20thread%20details%20and%20events%20details.%20This%20data%20allows%20a%20developer%20to%20see%20what%20it%20taking%20most%20of%20the%20time.您可以启用它来帮助您调试 JavaFX 架构并验证您的应用程序是否确实以您期望的帧速率运行。
JavaFX 8 有一个脉冲记录器(-Djavafx.pulseLogger=true
系统属性),它“打印出很多关于 JavaFX 引擎执行的废话”(以一种好的方式)。每个脉冲提供了大量信息,包括脉冲数(自动递增整数)、脉冲持续时间和自上次脉冲以来的时间。该信息还包括线程详细信息和事件详细信息。这些数据使开发人员能够了解哪些内容占用了大部分时间。
Warning
使用未记录功能的正常警告适用,如来自 JavaFX 团队的 Richard Bair https://community.oracle.com/thread/2390862 notes:
请注意,如果我们没有记录命令行开关,那么在后续版本中删除/修改它们是公平的游戏:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)