[BUG]: `scattergl` hover is slow above 100k points
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 58/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- javascript
- Bereich
- data-visualization, performance
Rechercherichtung
Start by comparing the hover path in src/traces/scattergl/hover.js with the threshold and point-cluster tree behavior in src/traces/scattergl/constants.ts; reproduce the lag with the provided 100,000 point example and compare it with 99,999 points. Determine why the .range() call is slow with infinite or wide bounds, then verify hover remains responsive at and above the threshold.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description
With 100,000 or more points, hovering over a scattergl trace is much slower than with 99,999 points.
Steps to reproduce
- Open Plotly devtools and paste the following into the browser devtools console:
let n = 100000;
Plotly.newPlot('graph', [{
type: 'scattergl',
mode: 'markers',
x0: 0,
dx: 1,
y: Array(n).fill(0)
}]);
- Hover over individual points and note the lag
- Change
nto99999and note that hover is fast
Notes
- At
TOO_MANY_POINTS(src/traces/scattergl/constants.ts),scatterglswitches from a plain array to the point-cluster tree - The slow call is
.range()insrc/traces/scattergl/hover.js - It's very slow with infinite bounds; it also seems slower than a plain array scan when the bounds cover a large share of the points
- Either
hover.jscalls.range()in a non-optimal way, orplotly/point-clusterhas a performance bug - #8052 stops the plot from freezing, but hover is still laggy
- Also related to #8036
- Vorherrschende Sprache
- JavaScript
- Sterne
- 18.4k
- Forks
- 2.1k
- Ø Merge
- 1 T. 5 Std.
- Gemergte PRs (30 T.)
- 12
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus plotly/plotly.js
-
[BUG]: `sankey`: `node.x` / `node.y` of `0` is ignoredEvtl. vergeben @adimalkar hat das vor 2 Tagen übernommen. Offenbug P3 size: 1
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
plotly/plotly.js#8150 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
[BUG]: `scatterpolargl` drops points between 10000 and 100000 pointsEvtl. vergeben @Tanishdete333 hat das vor 2 Tagen übernommen. Offenbug P3 size: 1
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
plotly/plotly.js#8148 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
[BUG]: findEmpties throws "iterated with no new neighbors" for large NaN regions in contour (double-precision underflow)Evtl. vergeben @davrens101 hat das vor 1 Tag übernommen. Offenbug P3 size: 3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
plotly/plotly.js#8108 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
chore P3 plotly-internal size: 3 task
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
plotly/plotly.js#8064 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
chore P1 plotly-internal size: 1 task
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in plotly/plotly.js
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
521xueweihan/HelloGitHub#4237 ·
-
Incorrect fuctioning of `Container.removeChildren()` when provided with nonzero starting indexOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 2 Tagen
-
bug confirmed js v6
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
area/frontend area/v2 kind/bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
Maintainer antworten meist innerhalb von 1 Tag