Google Chart Ständige Neuzeichnen Speicher Erhöhen

Ich bin Neuzeichnen des Diagramms auf der Grundlage neuer Daten jede Sekunde, und es funktioniert und sieht toll aus, aber ich merke, es erhöhe ich den Speicher von 1 MB Nutzung pro Sekunde. Irgendeine Möglichkeit dieses Problem zu beheben? Ich merke, wenn ich nur noch statischen Diagramme, dann ist der Speicher stabilisiert, aber sobald ich hinzufügen, die ständige Neuzeichnen (um die Daten zu aktualisieren), die Speicherauslastung nie aufhört.

Zuerst dachte ich, es war, weil ich eine neue Instanz zu erstellen das Diagramm jedes mal, also habe ich den code ändern so war es nur Neuzeichnen der gleichen Instanz jeder Zeit, aber das half nicht viel.

Weiss jemand wie man es beheben? Muss ich einen dump der alten Grafik zuerst irgendwie?

google.setOnLoadCallback(test);

var chart;
var chartOptions;
var chartCreate;

function test() {
    chart = new google.visualization.DataTable();
    chart.addColumn('string', 'Lorem');
    chart.addColumn('number', 'Ipsum');
    chart.addRows([
            ['', 0]
    ]);
    chartOptions = {};
    chartCreate = new google.visualization.LineChart(document.getElementById('chartDiv'));
          chartCreate.draw(chart, chartOptions);
    ]);
}

function test2() {
    chart.removeRows(0, 5);
    for (var i = 0; i < dataSpaceArray.length; ++i) {
        chart.addRow([dataTimeArray[i], dataSpaceArray[i], dataSpeedArray[i]]);
    }
        chartCreate.draw(chart, chartOptions);
}

setTimeout(test2,1000)
  • Der Speicherverlust auf redraw-Problem ist bekannt. Es gibt nichts, was Sie dagegen tun können wie weit ich bin bewusst. Die Visualisierungs-API-dev-team weiß es und schaut hinein.
  • Hast du irgendwelche Quellen dafür? Das scheint wirklich seltsam, es ziemlich viel bedeutet, Sie können nicht aktualisieren Sie die Daten in die Diagramme dann.
  • Zur info, der neueste release candidate-version (Last v1.1 statt v1) enthält einige fixes für die memory-leak-Probleme.
  • Ich habe versucht für zwei Tage nun verschiedene Wege daran vorbei, aber nichts funktioniert. Unter vielen Dingen, die ich habe versucht, löschen Sie das ganze mit div (mit dem besten Ergebnis, obwohl der abt. 400 kB Leck/update). @Alex-Lösung nichts tun. Wie macht man das laden der v1.1, @asgallant?
  • Wenn Sie anrufen google.load('visualization', '1', {packages: [/* packages list */], callback: drawChart}); ersetzen Sie die 1 mit 1.1.
  • Ok, vielen Dank! 1.1 das Leck (falls vorhanden) ist zu vernachlässigen. Insgesamt ist der Verbrauch höher, obwohl (~15MB von ~7MB). Funktioniert auf pc aber sehr träge auf dem Raspberry Pi (eine andere Geschichte :-). Sollten Sie überlegen, 1.1, eine gute Antwort zu dieser Frage!

InformationsquelleAutor zen | 2013-09-14
Schreibe einen Kommentar