JavaFX 通过在屏幕上显示简单的浮动文本确实消耗了我的 CPU,这让我有点惊讶。
我的问题是是否有任何选项调整来为文本等节点打开硬件加速?渲染 2D 图元时使用GPU而不是 CPU?
这是在我的 2.53Mhz core 2 duo + Nvidia 9600M GT 上消耗高达 40% cpu 的简单示例。操作系统:Mac OS X。JavaFX 1.2;JRE 1.5
编辑:我在示例中放置了动画来模拟文本滚动。您可以通过不停地滚动 ListBox 或某些图片来尝试实现相同的 CPU 消耗。
package text2dacceleration;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.transform.Transform;
import javafx.scene.text.Text;
import javafx.animation.*;
def longLine = for (i in [1..45]) "{i}";
def textNodes = for (i in [1..64]) Text{content: "{longLine} line number {i}"};
var yoffset = 0.0;
Timeline {
repeatCount: Timeline.INDEFINITE
autoReverse: true
keyFrames: [
KeyFrame { time: 0s values: [yoffset => 0.0]}
KeyFrame { time: 1s values: [yoffset => 10.0]}]
}.play();
Stage {
title: "Text nodes"
width: 800
height: 600
resizable: false
scene: Scene {
content: [
VBox {
content: textNodes
transforms: bind Transform.translate(0, yoffset);
}]}}