Qu0*_*0ll 8 java caching javafx
关于JavaFX,我有以下问题:
我是否需要在Node上使用setCache(true)来设置由setCacheHint()设置的缓存提示才能实际产生任何效果?
是否应该调用setCache实际上提高性能,即帧速率的一些或大部分时间?当我使用setCache(true)并且我应用缩放和其他变换时,我无法观察到帧速率的任何变化.
jew*_*sea 13
我是否需要在Node上使用setCache(true)来设置由setCacheHint()设置的缓存提示才能实际产生任何效果?
是.
所述高速缓存属性是一个暗示在所有或没有系统中的节点绘制是否应被高速缓存(作为内部图像).
所述cacheHint属性是一个提示的预期什么变换的节点上的系统,以使高速缓存操作能为那些被优化变换类型(例如高速缓存提示旋转,缩放或速度等).
如果节点根本没有设置为缓存,则cacheHint无关紧要.
是否应该调用setCache实际上提高性能,即帧速率的一些或大部分时间?
不必要.JavaFX的默认帧速率上限为60fps,因此如果性能足够好,即使没有任何缓存提示也达不到帧速率,您将看不到任何明显的差异.这是许多基本动画和变换的情况.
即使帧速率没有提高,缓存提示也可以使每个变换的执行效率更高,从而减少CPU或GPU密集度(通常通过交易视觉质量).
可能还有其他因素会对您的帧速率产生更大的影响.这些事情可能与可缓存项的渲染速度无关(例如,在游戏循环期间在JavaFX应用程序线程上执行的长时间运行操作或不断变化的节点内容).
我已经使用的组合setCache(true)和setCacheHint(CacheHint.SPEED)小游戏我写了功能与应用的节点多重效果和半透明多个同时动画节点.这些设置确实加快了速度(Mac OS X,Macbook Air 2012,Java FX 2.2).
您还可以手动获取节点树的快照,并使用快照Image手动替换节点树,而不是依赖于渲染系统的提示.这种快照技术并不总是最好的方法,但如果提示在您的情况下效果不佳,它确实可以为您提供替代方案.
| 归档时间: |
|
| 查看次数: |
6185 次 |
| 最近记录: |