0

私は、4 つの fastlines を持つ tchart が 1 つ以上あるアプリケーションを開発しています。tcharts の最大数は、いくつかの基準に応じて 16 です。各 fastline には、さまざまなケースでさまざまなサンプル数が含まれています。ここが今の問題です。サンプル数が 200 ~ 250 未満の場合。次に、グラフがリアルタイムでプロットされていることがわかります。サンプル数が増加すると、グラフをプロットする際の遅延が非常に長くなります。各ファスラインに 1000 個のサンプルがある場合、チャートには合計 4000 個のサンプルがあるとします。このようなグラフは最大 16 個まで作成できます。遅延は、ファストラインに含まれるサンプル数とチャート内のファストラインの数に大きく依存していることに気付きました。autorepaint = false に関しては既に変更を加えています。chart1.autorepaint = false series1.autorepaint = false と series 2 、 3 、 4 があります。 fastline に値を追加するたびに、chart1.refresh() を手動で実行する必要があります。これには、4 つの fastlines すべてが更新されるため、非常に時間がかかります。遅延は series1.add() にも関連している可能性がありますが、よくわかりません。遅延を避けるためにできることはありますか?

これが私が使用しているコードです。

    public void PlotActualValuesUpToSampleNumber(int SampleNumber)
     {      
            int DataPoint;
            Chart1.AutoRepaint = false;
            for (DataPoint = LastActualSamplePlotted + 1; DataPoint <= SampleNumber; DataPoint ++ )
            {

                    if (Imp.ThisSampleContainsFault[ChannelNumber, DataPoint])
                    {

                        Chart1.Panel.Gradient.Visible = false;
                        Chart1.Panel.Color = Imp.ChartBackgroundColorIfFault;

                    }

                    Series4.Add(Imp.ActualValue[ChannelNumber, DataPoint], "", Color.Yellow);

                   LastActualSamplePlotted ++;

            }
            Chart1.Refresh();
            Chart1.AutoRepaint = true;               
     }

遅延を回避するためにできることはありますか? 私はすでにこれらのリンクを参照しました。 http://www.teechart.net/reference/articles/VCLRealtime.htm http://www.teechart.net/support/viewtopic.php?p=47388 http://www.teechart.net/support/viewtopic. php?t=5127 http://stackoverflow.com/questions/11977423/performance-issue-with-tchart

しかし、成功しません。

4

1 に答える 1

3

パフォーマンスは主に、チャートが処理する必要があるデータの量によって影響を受けます。さまざまなコード ソリューションと環境も、ここでかなり影響を与える可能性があります。だから私の提案は次のとおりです。

  1. サンドラがここに投稿した 2 番目の例のように、データ配列をシリーズに直接注入してみましたか? これは、VCLリアルタイム チャートの記事と同じ原則です。

  2. TeeChart の Direct 2D バージョンを試しましたか? そのパフォーマンスに関するホワイト ペーパーは、こちら にあります

  3. TeeChart のプログラム グループで利用可能な機能のデモで、以下のセクションの例を確認することを強くお勧めします。

*すべての機能\ようこそ !\グラフ スタイル\標準\Fast Line*

すべての機能\ようこそ !\スピード

それでも期待どおりの結果が得られない場合は、簡単なサンプル プロジェクトをお送りください。「現状のまま」実行して、ここで問題を再現できます。

于 2013-01-02T15:53:28.387 に答える