Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preload more intelligently ... #10968

Open
mmeeks opened this issue Jan 20, 2025 · 1 comment
Open

Preload more intelligently ... #10968

mmeeks opened this issue Jan 20, 2025 · 1 comment
Assignees
Labels
24.04 bug Something isn't working performance Improving COOL performance

Comments

@mmeeks
Copy link
Contributor

mmeeks commented Jan 20, 2025

Load a spreadsheet; press ctrl-alt-d - and select the 'Tile preload map'

Now move around the sheet.

Notice we are growing the pre-loaded area horiztonally in vertical strips which are 1 tile wide. This is really bad for server side rendering performance - we should render in (ideally) four to eight tiles wide around the view - to parallelize compression, and also to significantly improve the efficiency of rendering.

Thanks ! =

@mmeeks mmeeks added 24.04 bug Something isn't working performance Improving COOL performance labels Jan 20, 2025
@mmeeks
Copy link
Contributor Author

mmeeks commented Jan 20, 2025

CanvasTileLayer.js 's L.TilesPreFetcher = L.Class.extend({ ... })

Is the place this goes on - we need to enlarge horizontally by more.

I guess this is more important since I changed the code here to be done more quickly.

eszkadev added a commit that referenced this issue Jan 24, 2025
Let's consider calc where we changed single column content.
We need to redraw tiles in a single column probably.
That was not possible to fetch in one go as we looked only
for horizontal adjacent tiles. Let's try to combine also
vertically.

Related to issue #10968 Preload more intelligently

After applying we can combine 2 tiles vertically:

kit-17619-17619 2025-01-24 18:38:40.239133 +0100 [ kitbroker_001 ] DBG  #21: child_ws: recv [tilecombine nviewid=1000 part=3 width=256 height=256 tileposx=49920,49920,49920,49920,49920 tileposy=207360,211200,215040,218880,222720 tilewidth=3840 tileheight=3840 ver=973,974,975,976,977 | kit/KitWebSocket.cpp:59
kit-17619-17619 2025-01-24 18:38:40.239167 +0100 [ kitbroker_001 ] TRC  KitQueue depth: 5| kit/KitQueue.cpp:424
kit-17619-17619 2025-01-24 18:38:40.239173 +0100 [ kitbroker_001 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=49920 tileposy=211200 tilewidth=3840 tileheight=3840 ver=974| kit/KitQueue.cpp:460
kit-17619-17619 2025-01-24 18:38:40.239178 +0100 [ kitbroker_001 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=49920 tileposy=215040 tilewidth=3840 tileheight=3840 ver=975| kit/KitQueue.cpp:460
kit-17619-17619 2025-01-24 18:38:40.239182 +0100 [ kitbroker_001 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=49920 tileposy=218880 tilewidth=3840 tileheight=3840 ver=976| kit/KitQueue.cpp:460
kit-17619-17619 2025-01-24 18:38:40.239186 +0100 [ kitbroker_001 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=49920 tileposy=222720 tilewidth=3840 tileheight=3840 ver=977| kit/KitQueue.cpp:460
kit-17619-17619 2025-01-24 18:38:40.239190 +0100 [ kitbroker_001 ] TRC  Combined 2 tiles, leaving 3 in queue.| kit/KitQueue.cpp:472
kit-17619-17619 2025-01-24 18:38:40.239196 +0100 [ kitbroker_001 ] TRC  KitQueue res:  nviewid=1000 part=3 width=256 height=256 tileposx=49920,49920 tileposy=207360,211200 tilewidth=3840 tileheight=3840 ver=973,974| kit/KitQueue.cpp:482

Signed-off-by: Szymon Kłos <[email protected]>
Change-Id: Ie564c79fb3a462d9df8a5bcd7eb4addc42a1fcbe
eszkadev added a commit that referenced this issue Jan 24, 2025
Before we combined only directly adjacent tiles, now we can do it in range of 4 tiles

Related to issue #10968 Preload more intelligently

1. Test when scrolling down a lot:

BEFORE+++++++++++++++++++++++++++++++++++++++++++++++++++++
kit-17619-17619 2025-01-24 18:38:40.239133 +0100 [ kitbroker_001 ] DBG  #21: child_ws: recv [tilecombine nviewid=1000 part=3 width=256 height=256 tileposx=49920,49920,49920,49920,49920 tileposy=207360,211200,215040,218880,222720 tilewidth=3840 tileheight=3840 ver=973,974,975,976,977 | kit/KitWebSocket.cpp:59
kit-17619-17619 2025-01-24 18:38:40.239167 +0100 [ kitbroker_001 ] TRC  KitQueue depth: 5| kit/KitQueue.cpp:424
kit-17619-17619 2025-01-24 18:38:40.239173 +0100 [ kitbroker_001 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=49920 tileposy=211200 tilewidth=3840 tileheight=3840 ver=974| kit/KitQueue.cpp:460
kit-17619-17619 2025-01-24 18:38:40.239178 +0100 [ kitbroker_001 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=49920 tileposy=215040 tilewidth=3840 tileheight=3840 ver=975| kit/KitQueue.cpp:460
kit-17619-17619 2025-01-24 18:38:40.239182 +0100 [ kitbroker_001 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=49920 tileposy=218880 tilewidth=3840 tileheight=3840 ver=976| kit/KitQueue.cpp:460
kit-17619-17619 2025-01-24 18:38:40.239186 +0100 [ kitbroker_001 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=49920 tileposy=222720 tilewidth=3840 tileheight=3840 ver=977| kit/KitQueue.cpp:460
kit-17619-17619 2025-01-24 18:38:40.239190 +0100 [ kitbroker_001 ] TRC  Combined 2 tiles, leaving 3 in queue.| kit/KitQueue.cpp:472
kit-17619-17619 2025-01-24 18:38:40.239196 +0100 [ kitbroker_001 ] TRC  KitQueue res:  nviewid=1000 part=3 width=256 height=256 tileposx=49920,49920 tileposy=207360,211200 tilewidth=3840 tileheight=3840 ver=973,974| kit/KitQueue.cpp:482
...
kit-17619-17619 2025-01-24 18:38:40.240723 +0100 [ kitbroker_001 ] DBG  paintPartTile      2 tiles at (49920, 207360), (3840, 7680)  took 1444us (90.7701 MP/s).| common/RenderTiles.hpp:134

COMBINED 2

AFTER++++++++++++++++++++++++++++++++++++++++++++++++++++++
kit-30108-30108 2025-01-24 19:13:48.862157 +0100 [ kitbroker_002 ] DBG  #21: child_ws: recv [tilecombine nviewid=1000 part=3 width=256 height=256 tileposx=0,3840,7680,11520,15360,19200 tileposy=107520,107520,107520,107520,107520,107520 tilewidth=3840 tileheight=3840 ver=500,501,502,503,504,505 | kit/KitWebSocket.cpp:59
kit-30108-30108 2025-01-24 19:13:48.862199 +0100 [ kitbroker_002 ] TRC  KitQueue depth: 6| kit/KitQueue.cpp:424
kit-30108-30108 2025-01-24 19:13:48.862214 +0100 [ kitbroker_002 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=3840 tileposy=107520 tilewidth=3840 tileheight=3840 ver=501| kit/KitQueue.cpp:460
kit-30108-30108 2025-01-24 19:13:48.862226 +0100 [ kitbroker_002 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=7680 tileposy=107520 tilewidth=3840 tileheight=3840 ver=502| kit/KitQueue.cpp:460
kit-30108-30108 2025-01-24 19:13:48.862236 +0100 [ kitbroker_002 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=11520 tileposy=107520 tilewidth=3840 tileheight=3840 ver=503| kit/KitQueue.cpp:460
kit-30108-30108 2025-01-24 19:13:48.862254 +0100 [ kitbroker_002 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=15360 tileposy=107520 tilewidth=3840 tileheight=3840 ver=504| kit/KitQueue.cpp:460
kit-30108-30108 2025-01-24 19:13:48.862265 +0100 [ kitbroker_002 ] TRC  Combining candidate:  nviewid=1000 part=3 width=256 height=256 tileposx=19200 tileposy=107520 tilewidth=3840 tileheight=3840 ver=505| kit/KitQueue.cpp:460
kit-30108-30108 2025-01-24 19:13:48.862275 +0100 [ kitbroker_002 ] TRC  Combined 5 tiles, leaving 1 in queue.| kit/KitQueue.cpp:472
kit-30108-30108 2025-01-24 19:13:48.862290 +0100 [ kitbroker_002 ] TRC  KitQueue res:  nviewid=1000 part=3 width=256 height=256 tileposx=0,3840,7680,11520,15360 tileposy=107520,107520,107520,107520,107520 tilewidth=3840 tileheight=3840 ver=500,501,502,503,504| kit/KitQueue.cpp:482
...
kit-30108-30108 2025-01-24 19:13:48.866132 +0100 [ kitbroker_002 ] DBG  paintPartTile      5 tiles at (0, 107520), (19200, 3840)  took 3613us (90.6947 MP/s).| common/RenderTiles.hpp:134

COMBINED 5

-------------------------------------------------------------------

2. Test when changing the column background color

BEFORE++++++++++++++++++++++++++++++++++++++++
kit-17014-17014 2025-01-24 19:29:16.111993 +0100 [ kitbroker_002 ] TRC  Combined 7 tiles, leaving 0 in queue.| kit/KitQueue.cpp:472

ONLY SINGLE ROW

AFTER++++++++++++++++++++++++++++++++++++++++++++
kit-30959-30959 2025-01-24 19:24:15.670147 +0100 [ kitbroker_002 ] TRC  Combined 10 tiles, leaving 4 in queue.| kit/KitQueue.cpp:472

TWO ROWS COMBINED

Signed-off-by: Szymon Kłos <[email protected]>
Change-Id: Icb19e75b6caf2f9e54129c3ca21ca9ed2733afc4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
24.04 bug Something isn't working performance Improving COOL performance
Projects
Status: No status
Development

No branches or pull requests

3 participants