• [soccerwindow2] Qt版の高速化へ向けてのメモ (akiyama) 14:58:50

どうやら,QPainterの使用においてボトルネックとなるのは,円または円弧の描画らしい.プレイヤ本体(円),その体の向き(半円)や首の向き(円弧)の描画処理の回数と,CPU使用率がほとんど比例している.ということは,プレイヤの描画内容をキャッシュしておいて,それを使い回せばパフォーマンスが改善される可能性が高い.

キャッシュすべき内容は,

  • プレイヤ本体
    • へテロ7タイプ x 2 = 14
    • キーパ x 2 = 2
  • プレイヤの実際の半径 or キッカブルエリア
    • へテロ7タイプ x 2 = 14
  • 体の向きを示す影
    • スタミナ8段階 = 8
  • 首の向きを示す円弧
    • ViewWidth3タイプ = 3

最低限,これら41個のQPixmapをキャッシュしておくべきだろう. これらの内容は,フィールドの拡大率が変更されるまで再描画する必要が無いので,かなり効率化されるはず.

後は,スコアボードの描画もキャッシュした方がいいだろう. 円の描画を減らすという意味では,デバッグサーバによる描画内容も.

それにしても,何で円の描画がこんなに重いのかな. wxというかgtkでは全然たいしたこと無かったのに.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (2042d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.