QCustomPlotの高速化
- 2021.03.07
- Qt
現在作成しているデータ収集ソフトはQCustomPlotを使ってグラフを描画している。とりあえずここにあるサンプルプログラムの通りにsetData
メソッドを使っていたが、データ点数が10万とかに増えると処理が重くなり、使い物にならなかった。
少し調べてみたらQCustomPlotではグラフごとに内部にQCPGraphDataContainer型のデータを持っており、上のサンプルにあるようにQVectorなどで別途データを持っておく必要はないようだ。
setDataメソッドは引数として渡したデータをQCustomPlotが内部に持っているQCPGraphDataContainerにコピーしているようで、データ点数が10万もあると10万のデータをコピーするのに時間がかかって処理が重くなっていたようだ。
ではどうするかというとaddDataメソッドを使えばいい。このメソッドはQCPGraphDataContainerに引数として渡したデータを追加するだけなので、setDataメソッドのように一から丸ごとコピーすることは無い。データが10万あっても追加するデータが100個なら、100個のデータをコピーするだけなので処理は遥かに軽くなる。
-
前の記事
Qtでプログラミング3 2021.02.22
-
次の記事
記事がありません