LoginSignup
0
1

More than 3 years have passed since last update.

c++ builder XE4, 10.2 Tokyo > TeeChart > 1つのグラフ:データ数20万件で固まる / 複数のグラフ: トータルデータ数20万件で固まる

Last updated at Posted at 2015-11-30
動作確認
C++ Builder XE4
Rad Studio 10.2 Tokyo Update 2 (追記: 2017/12/27)

TeeChartにおいてFastLineのプロットをするときにどのくらいのオーダーの数のプロットが可能なのか気になった。

調べたが、数の制限についての情報はうまく見つけられていない。

try1 > 1つのグラフで

試しに以下を実行してみた

Unit1.cpp
void __fastcall TFormMain::Button1Click(TObject *Sender)
{
    TDateTime dt;

    dt = Now();
    double val;

    for(DWORD idx=0; idx < 200000; idx++) {
        val = Random(500) - 250;
        FastLineSeries1->AddXY(dt, val, "", clRed);
        dt = IncSecond(dt, 1);
    }

    String msg = L"fin";
    OutputDebugString(msg.c_str());
}

1回目のボタンクリック時はfinが帰ってきた。
2回目のボタンクリックでは処理が終了しない。

データ個数を20000にした場合は、多少時間はかかるが個々の処理が終了していく。
(10.2 Tokyo + Win 10 Proでも同じパフォーマンス)

データが大量にある場合は間引きをして表示するなりの対処をすればいいのだろう。
実際のところ、20万件のデータをそのままプロットする必要はないと思われる。

try2 > 複数のグラフで

(追記 2015/12/20)

1つのグラフのプロット上限がだいたい20万件だった。では、複数のグラフだと各グラフが20万件いけるのか?

実際試したところ、複数のグラフの場合は「全体のデータ数が20万件を超えた時」から動作があやしくなる。

例として、FastLineSeriesを6個を1つのグラフに用意し、そのグラフを8つ並べる場合、各
FastLineSeriesのデータ数を4000だと動くが、6000にすると処理が止まるようだ。

4000 * 6ライン * 8グラフ = 192000
6000 * 6ライン * 8グラフ = 288000

全体のデータ数を20万件以内に抑えるのが無難。

動作確認
Windows 7 pro
1.5GB RAM

検索用キーワード

  • TChart
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1