1

非常に基本的な Chart2d の質問があります。chart.destroy() はメモリを削除してクリーンアップするはずではありませんか? はいの場合、次のコードがメモリを大量に消費するのはなぜですか? すぐに破棄されるため、グラフは表示されないことに注意してください。Google Chrome のタスク マネージャーを使用してメモリ使用量を調べていますが、20 分後には 200MB をはるかに超えています。

updateSeries() については知っていますが、それは私が望んでいるものではありません。すべてのグラフのプロパティ (タイトル、軸、プロット、データ、色など) が反復ごとに変更される可能性があるため、最も簡単な方法はチャートを破棄し、もう一度作り直してください。私の問題を解決するためのより良い方法があるとしても、チャートとそのすべてのメモリバインディングを取り除くための最良の方法は何だろうか?

補足: addPlot、addAxis、および addSeries の行を削除しても (つまり、new、render、および destroy のみが残ります)、同じようにメモリ使用量が高くなります。また、1.8.0 を使用しています。

ありがとう、

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<script type="text/javascript" src="dojo/dojo.js" djconfig="isDebug: true"></script>

<script type="text/javascript">

  dojo.require("dojox.charting.Chart2D");

  runCharts = function() {
    setTimeout(makeCharts, 100);
  };

  makeCharts = function(){
    var chart1 = new dojox.charting.Chart2D("simplechart", {delayInMs:0});
    chart1.addPlot("default", {type: "Lines"});
    chart1.addAxis("x");
    chart1.addAxis("y", {vertical: true});
    chart1.addSeries("Series 1", [1, 2, 2, 3, 4, 5, 5, 7]);
    chart1.render();
    chart1.destroy();
    setTimeout(makeCharts, 100);
  };

  dojo.addOnLoad(runCharts);
</script>

<div id="simplechart" style="width: 250px; height: 150px;"></div>
4

1 に答える 1

1

これが役立つかどうかわからない場合は、これを試してください:

    chart1.destroy();
    delete chart1;
于 2013-03-11T18:27:37.250 に答える