Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Data Limit/Inefficient data transfer of chart data (options) to the browser

Aperta
#570 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
javascript, nodejs
Ambito
backend

Direzione di ricerca

Riproduci il malfunzionamento con un grafico contenente 3 milioni di punti dati, quindi analizza il crash dell’exporter e il trasferimento JSON duplicato descritti nel report. Il lavoro è completato quando i dati di grafici di grandi dimensioni non causano più un crash al limite di trasferimento e il servizio registra il motivo specifico quando il limite viene superato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug health/perfo
Expected behavior

The export server should handle large amounts of data. The technical limitation is likely due to the Chrome DevTools protocol implementation, which is capped at 100 MB. This allows for approximately 12,979,200 data points to be transferred (assuming double precision at 8 bytes per point). However, some bytes should be reserved for other settings within the options object.

Additionally, the exporter crashes without a proper error message when the 100 MB limit is exceeded.

Actual behavior

Data is transferred as a string representation of the JSON object, which consumes more than twice the amount of data per data point. We are currently observing a limit of around 2,550,000 data points, resulting in a JSON string of roughly 100 MB. I expected it to be around 50 MB, but the data appears redundant in the transferred message (data.params.arguments[1].value.export.options and data.params.arguments[1].value.export.strInj).

The exporter should not crash when the limit is exceeded. Instead, it should log the specific reason.

One potential solution could be to serialize the JSON to BSON, transfer it as binary data, and then deserialize it back to JSON on the client side.

Reproduction steps

Render a chart with 3 million data points and observe the service crashing.

Lingua principale
JavaScript
Stelle
368
Fork
265
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di highcharts/node-export-server

Tutte le issue di highcharts/node-export-server

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.