TrackBar のスクロール中に 1000 折れ線グラフを更新するプロセスがあります。
StopWatching を行ったところ、ZGC.Refresh() がプロセス実行時間の 90% を占めていることがわかりました。TrackBar のスクロールに合わせてグラフの進行状況を確認できる機能は、プログラムにとって不可欠です。私のプログラムをより速く実行できるように、ZGC.Refresh() の効率を最適化する方法はありますか?
ANTS Performance Profilerのようなものを使用して、 Refresh() メソッドのどの部分が最適化を使用できるかを正確に絞り込むことができます。
メソッド自体の最適化を除いて、実際に必要以上に大きなグラフを生成し、そのグラフの一部のみを表示して、現在表示されているグラフの部分をスクロールで変更することは可能でしょうか?
Refresh()
使用する代わりにInvalidate()
、変更された要素のみを更新するため、はるかに高速になるはずです。
場合によっては、組み合わせて使用する必要がありますAxisCHange() + Invalidate()
ZedGraph のパフォーマンスに関心のある方は、こちらの回答をご覧ください。
2008 年以降に変更 (パフォーマンスの強化を含む) が行われたライブラリのバージョンについて情報を広めようとしています。