個人でDXライブラリを使って中規模(計30000行くらい)のゲーム開発をしているものです。
プログラムにおいて1フレームで次のような処理が20000回ほど呼ばれます。
このコードを次のようにリファクタリングしました。
・aliveをprivateにする
・inline指定付きのgetterをクラスSpriteに実装する
そうしたところ、debugモードにおいて処理が非常に重くなり手が付けられなくなりました。(releaseでは問題なく動作します)
逆アセンブルして原因を調べたところ、getterがinline展開されていないことがネックでした。
このままではデバッグができないので、何とかdebugモードでinline展開できる方法(vc2008の設定やコンパイルオプション等)
をご教授いただけないでしょうか。
環境はwindows10,VisualStudio2008 ExpressEditionです。
よろしくお願いします。
vc2008デバッグモードでインライン展開したい
追記
追記します。
コンパイルオプションは
/Od /Oi /I "./DxLib/" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /fp:fast /Yu"stdafx.h" /Fp"Debug\naraku_m_h.pch" /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W4 /nologo /c /ZI /TP /FI "StdAfx.h" /FI "always_include.h" /errorReport:prompt
です。
インライン関数の展開/Ob1は試しましたがdebugモードでは使用できないようでした。
コンパイルオプションは
/Od /Oi /I "./DxLib/" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /fp:fast /Yu"stdafx.h" /Fp"Debug\naraku_m_h.pch" /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W4 /nologo /c /ZI /TP /FI "StdAfx.h" /FI "always_include.h" /errorReport:prompt
です。
インライン関数の展開/Ob1は試しましたがdebugモードでは使用できないようでした。
Re: vc2008デバッグモードでインライン展開したい
はじめまして、問題のインライン展開ですが、cppソースに書かれていらっしゃるのでしょうか?
もし、そうならば、ヘッダーファイルに書いてみてはどうでしょうか?
第8章 インライン関数・再び
http://www7b.biglobe.ne.jp/~robe/cpphtm ... 02008.html
上のURL先が参考になれば幸いです。
すでに検討済みであれば、申し訳ありません。
もし、そうならば、ヘッダーファイルに書いてみてはどうでしょうか?
第8章 インライン関数・再び
http://www7b.biglobe.ne.jp/~robe/cpphtm ... 02008.html
上のURL先が参考になれば幸いです。
すでに検討済みであれば、申し訳ありません。