JavaFx: рендеринг 500k прямоугольников очень медленный 1. время, но потом быстрый.Зачем? - PullRequest
0 голосов
/ 24 ноября 2018

Я использую JavaFx и Canvas для рендеринга карты в виде 500-килограммовых прямоугольников.1. Время их рендеринга занимает около 40 секунд, но позже менее 1 секунды:

1.Время:

10:11:17:133 INFO jfws.util.map.MapRenderer - render()
10:11:54:469 INFO jfws.editor.map.MapEditorController - render(): Finished

Позже:

10:40:23:905 INFO jfws.util.map.MapRenderer - render()
10:40:23:989 INFO jfws.editor.map.MapEditorController - render(): Finished

Код содержит 2 цикла с 2 командами на прямоугольник:

graphicsContext.setFill(color);
graphicsContext.fillRect(x, y, width, height);

См. MapRenderer.java .

Я также много раз рендерил небольшую карту с 200 прямоугольникамидо этого без проблем.

1 Ответ

0 голосов
/ 05 декабря 2018

Я нашел ответ!: -D

Я рендерил большую карту с PixelWriter в WritableImage, а затем рисую изображение на холсте.Теперь рендеринг занимает менее 1 секунды!

См. commit .

...