社内の一部の Linux ベースの組み込みデバイスに Qt 4.8.5 を使用しようとしています。XサーバーなしでQt組み込みを使用しています。測定データをプロットして頻繁に更新する必要があります (20 ~ 30 fps、ただしウィジェットのごく一部のみ)。システムは ARM ベースの 400Mhz で、GPU も FPU もありません。QWidget をサブクラス化し、paintEvent() をオーバーライドしました。WA_OpaquePaintEvent と WA_StaticContents が設定されています。テストのために、私のペイント イベントは空で、50 ミリ秒に設定されたタイマーからウィジェットの update() 関数を呼び出します。私の問題は、空の更新プログラムが CPU の 30% を消費していることです。アップデートの範囲によって金額が変動するので、QTがバックグラウンドで何かを再描画することもあると思います。多くの投稿を読みましたが、問題の解決策が見つかりません。更新呼び出しをコメントアウトすると、CPU 使用率は ~1% に低下します (ウィジェットをテストするためにタイマーでサインを生成しても、空の関数呼び出しよりもはるかに複雑になるはずです)。私のウィジェットは長方形で、透明ではなく、ペイント イベントから完全な描画手順を処理したいと考えています。
このオーバーヘッドを削減し、塗装プロセス全体を自分で処理することはできますか?