ページ 11

これって重いプログラム?

Posted: 2011年11月17日(木) 11:29
by 史上最悪のデスペナ
3Dゲームを作成しています。(VC++EEでC++&DXライブラリ使用)
現在実装されている内容としてはプログラムの進行順に並べるとこんな感じです。

ウィンドウ作成
ロード(セーブデータ・キャラ・マップ(地面と建物で別モデル)・敵一体・キャラの持つ武器)
メインループ

    キー入力チェック
    キー押下時間測定
  
    自キャラ
    {
        移動(画面に対して前後左右+Y軸回転+ジャンプ)
        モーション(走・歩・座・アイドリングをキーによって判定)
        武器移動(自キャラの動きに合わせて)
        攻撃
    }

    敵
    {
        動き(動く→止まる→回転を時間ランダムで動かす)
        モーション(歩のみ)
    }

    当たり判定
    {
        自キャラ(地面、建物、敵)
        敵(地面、建物、自キャラ)
        武器(敵)
    }

    ダメージ判定
    {
        敵
    }

    死亡処理
    {
        敵
    }

    カメラ移動(TPS)

    描画(自キャラ・マップ・敵・武器・空・UI(2つあり、キー入力に応じて描画したりしなかったり))



この程度のことを

第2世代インテル® Core™ i5-2430M プロセッサー (2.40 GHz、ターボブースト適用後:最大3.00GHz)
Windows® 7 Home Premium SP1 64ビット 正規版 (日本語版)
4GB (4GBx1) 1 DIMM DDR3 1333MHz メモリ
640GB HDD (5400回転)
インテル® HD グラフィックス3000
15.6インチ TrueLife™ HD WLED 液晶ディスプレイ(1366 x 768)(39.6cm)
平均通常CPU使用率 2%
平均通常メモリ使用率 31%

という性能のPCで起動すると
平均CPU使用率 10%
平均メモリ使用率 34%

となります。

私はちょっと負荷がかかっているのではないかと思うのですがどうなんでしょう?

Re: これって重いプログラム?

Posted: 2011年11月17日(木) 11:55
by softya(ソフト屋)
少なくともGPUが内蔵で外部では無いので何らかの負荷がCPUに掛かっていても不思議ではないです。
まぁ、ジオメトリ演算とかがCPU負荷の原因だったりする可能性もありますね。
テスト用のベンチマークプログラムをここで公開して負荷試験に協力してもらってデータを集めてみては?

Re: これって重いプログラム?

Posted: 2011年11月17日(木) 12:03
by 史上最悪のデスペナ
Windows7なのでガジェットを使ってそれを見て記録した値なのですが
ゲーム画面上にCPU使用率やメモリ使用率を表示するにはどうしたらいいでしょうか?

見ての通り実装してる量がRPGのくせに殆ど無いのである程度出来てから負荷試験をお願いした方がいいと思いますので、
負荷試験に協力していただくのはもうちょっと後(何ヶ月後になるのやら(遠い目))にしようと思います。

Re: これって重いプログラム?

Posted: 2011年11月17日(木) 12:27
by softya(ソフト屋)
CPU使用率の計測方法です。
「PdhGetFormattedCounterValue」
http://nienie.com/~masapico/api_PdhGetF ... Value.html

あと、
史上最悪のデスペナ さんが書きました: 見ての通り実装してる量がRPGのくせに殆ど無いのである程度出来てから負荷試験をお願いした方がいいと思いますので、
負荷試験に協力していただくのはもうちょっと後(何ヶ月後になるのやら(遠い目))にしようと思います。
RPGの実装と言う意味なら気が遠くなるほど時間がかかるので負荷試験は先にやっておいたほうが良い気が。

【追記】
貼り忘れです。メモリ計測。
「現在のプロセスのパフォーマンスカウンター値(CPU使用率、各種メモリ使用量、他)の取得」
http://www.hiramine.com/programming/win ... mance.html

Re: これって重いプログラム?

Posted: 2011年11月18日(金) 08:37
by 史上最悪のデスペナ
リンク先のコードを理解するのに時間がかかりそうです・・・・・・・
理解できて使えるようになったら負荷試験のお願いをしようと思います。