2009-07-10 13 views
2

私はlineseriesチャートを使用していますが、合計ポイント数が〜1200ポイントのときに新しいポイントを追加するとかなりレンダリングが遅くなります。確かに、これはかなり遅いPC(約600MHz)で動作しています。レンダリングを高速化する方法(ドロップシャドウをオフにする、filterDataをオフにするなど)に関するFlexのドキュメントを読むことは役に立ちません。私は自分のチャートをArrayCollectionにバインドしました(以前は手動で更新した配列ではなく)。アドビのドキュメントは、私がChartが最後に更新されたときから変更されたものだけを見ていると信じているようですが、私は1ポイントしか追加していません!彼らの情報が正しい場合、私は約2ポイント(瞬時)を持っているとき〜1200ポイントを持っているときに1つのポイントを更新するためにかなり長い時間(5秒)かかるのはなぜですか?Flexでチャートレンダリングを高速化する方法は?

FYI - ArrayCollectionに新しいポイントを追加すると、新しいデータを取得するためにDataBindingを取得するために "AC.refresh()"を実行する必要があります。私はプロセスをスピードアップするために何ができるかに関するアイデア?

+0

ポイントを平均化してグリッド上に表示するポイントを減らすことを検討しましたが、ポイントを表示するグリッドのセクションを「ズーム」できますか?月を表示して月にズームするのと同じように –

答えて

1

フラッシュ/フレックスの1200ポイントの描画は、再描画するとゆっくりと実行されます。余分なポイントを追加すると、シリーズ全体が無効になります。チャートが無効にされると、次の利用可能な機会に自身を再描画します。この再描画は遅くなります。私は恐れてこれの周りに道はありません。

私が指摘しているように、なぜあなたはいつでもチャート上に1200ポイントを表示する必要があります。このチャートを読んだ人は、その情報をすべて取ることはできません。これらのポイントの傾向を示す必要がある場合は、平均を表示するようにデザインを変更する必要があります(Chrisのコメントごと)。あなたが使用できる他の戦略もあります。 Fiat Eco Driveアプリケーションを見ると、一度に最大範囲しか表示されません。だから、たとえ数百から数千のポイントを持つことができたとしても、私たちは一定量のポイントしか表示しません。

これには他の多くの戦略があります。実際にはチャートデザインをもう一度見直し、実際のチャート構築をリファクタリングする必要があります。

+0

何をするかは、すべての値をグラフ化するのではなく、データを2分の「チャンク」に分割し、グラフの2点に分けます。チャンク"。そうすれば、平均化によって失われることなく、データにピークと谷が表示されます。 – Seidleroni

+0

いいです!良い選択 –

0

グラフのレンダリング時間がレンダリングシリーズから来ているので、dataProviderを変更してシリーズ数を維持すると、グラフは2回目から非常に良好にレンダリングされます。

関連する問題