Я немного удивлен, что JavaFX действительно потребляет мой процессор, показывая простой плавающий текст на экране.Javafx 2d text rendering speed up
У меня вопрос есть ли какие-либо настройки для включения аппаратного ускорения для таких узлов, как Text? Использовать GPU, а не CPU при рендеринге 2D примитивов?
Вот простой пример, который потребляет до 40% процессора на моем 2.53Mhz ядре 2 Duo + Nvidia 9600M GT. ОС: Mac OS X. JavaFX 1.2; JRE 1.5
Редактировать: Я положил анимацию в пример, чтобы просто имитировать прокрутку текста. Вы можете попытаться добиться того же потребления процессора, прокрутив ListBox или некоторое изображение без остановки.
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);
}]}}
Частота кадров хорошая. Все гладко, как должно быть. Но зачем потреблять CPU, а не GPU? –
(WinXP run, Java FX 1.2, Java 1.6). Если мышь перемещается по окну, частота кадров, даже 10, кажется, не имеет большого значения. Высокий процессор. Если мышь выключена, процессор работает меньше, а нижний - с более низкими кадрами. Это подсказывает мне, что проблема действительно не в рендеринге кадров. – Refactor
Помещение всего текста в один текстовый узел и отображение, которое по-прежнему имеет одинаковую проблему с ЦП, когда мышь перемещается по окну (хотя изображение в моей системе, безусловно, более плавное, даже при частоте кадров 10.). blockmouse: true не имеет значения. – Refactor