JavaFX が単純なフローティング テキストを画面に表示することで CPU を消費することに少し驚いています。
私の質問は、テキストのようなノードのハードウェア アクセラレーションを有効にするオプションの微調整はありますか? 2D プリミティブのレンダリング時に CPU ではなくGPUを使用するには?
これは、私の 2.53Mhz コア 2 デュオ + Nvidia 9600M GT で最大 40% の CPU を消費する簡単な例です。OS: Mac OS X. JavaFX 1.2; JRE1.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);
}]}}