CartoDB / carto-vl

CARTO VL: a Javascript library to create vector-based visualizations
BSD 3-Clause "New" or "Revised" License
129 stars 26 forks source link

Performance regression #1378

Open jsanz opened 5 years ago

jsanz commented 5 years ago

Context

I'm experiencing performance problems on a generic VL example.

Steps to Reproduce

This happens only in certain set ups but it's definitely not a corner case, I've seen this happening both in our computers but also in final clients.

  1. Navigate to this example from our developer center.
  2. Without changing anything from the UI, zoom in using the scroll wheel
  3. Check your box RAM consumption

Current Result

This example performance is degraded greatly, to the point of blocking the browser and requiring a full restart. This is not happening in newer computers.

Browser and version

Happening at least on this set-up:

Additional info

Please add any information of interest here below

jsanz commented 5 years ago

I will share my test on an old Windows 10 computer. I tried the example and it worked fine, the visualization was responsive and quick. Still, the browser RAM consumption spiked around 800MB. Sharing below a few screenshots.

screenshots Sorry for the Spanish labels ### System details ![00-system png](https://user-images.githubusercontent.com/188264/60337081-5b7a3c80-99a2-11e9-9edb-eacad54d87b0.PNG) ### Baseline System freshly started and just with the browser ![01-base png](https://user-images.githubusercontent.com/188264/60337149-86fd2700-99a2-11e9-9db5-c8556b27e195.PNG) ### Example load Loading the VL example from the dev center, without any interaction. ![03-carga-pagina png](https://user-images.githubusercontent.com/188264/60337165-91b7bc00-99a2-11e9-85b8-77545eba20ba.PNG) ### After scrolling Zooming in and out and panning for a few seconds ![04-scrolling png](https://user-images.githubusercontent.com/188264/60337204-abf19a00-99a2-11e9-98aa-69a789f8e6a3.PNG)
jsanz commented 5 years ago

On the other hand Nacho Brodin (Prodevelop) reported having issues with this set up

joseahr commented 5 years ago

I tested the example in my laptop:

Captura5

My GPU is NVIDIA Geforce GTX 1650 4GB

In my test:

Screenshots ### No page opened ![Captura4](https://user-images.githubusercontent.com/12834751/60363781-c187b380-99e4-11e9-9fd3-2b8a92f5e2ca.PNG) ### Opened the example page ![Captura](https://user-images.githubusercontent.com/12834751/60363879-f8f66000-99e4-11e9-87d0-e06e37e7de60.PNG) ### After a few seconds of zooming ![Captura2](https://user-images.githubusercontent.com/12834751/60363924-16c3c500-99e5-11e9-8692-3b6ddb2572af.PNG) ### After a few minutes of interacting with the map ![Captura3](https://user-images.githubusercontent.com/12834751/60363944-26dba480-99e5-11e9-8e0c-e27155fa24a3.PNG) ### GPU consumption while zooming ![carto vl](https://user-images.githubusercontent.com/12834751/60364144-c6993280-99e5-11e9-9845-c4f102b10924.gif)
VictorVelarde commented 5 years ago

I have tried in my machine with https://carto.com/developers/carto-vl/examples/maps/advanced/classification-variables.html

and I get these figures (with Chrome > More tools > Task manager > Memory use):

So despite the memory grows, it looks pretty stable from a certain point.

While we keep analyzing this, it would be great to gather more info from your side:

  1. Can you verify in a problematic machine if this is a regression from... (some tests ahead to discard several cases; please go to https://vlmemory-fxeovxmova.now.sh and then use each different file)...

    • [ ] Mapbox v1.0.0? --> please try with '01.html' (it uses same VL 1.3.1 but Mapbox v0.54.0)
    • [ ] VL v1.3.1? --> please try with '02.html' (it uses VL v1.3.0)
    • [ ] VL v1.3? --> please try with '03.html' (it uses VL v1.2.6).
    • If at this point you didn't find any difference, then this is probably not a regression, but a different situation, and we have to keep researching.
  2. Can you check if your situation is related to Interactivity?

    • [ ] Please try with '04.html' (same latest libs, but without Interactivity).
  3. Can you reproduce this problem with a points layer (not a polygon one): for example, https://carto.com/developers/carto-vl/examples/maps/advanced/taxi-pickups.html