トップページ > 記事閲覧
ステップ実行が重い
名前:lltcggie 日時: 2016/03/27 01:02

いつもお世話になっています。 DxLib_Init()を呼び出した後にブレークポイントでプログラムの実行を止めてF10でステップ実行を行うと、 変数の代入しかしていない文でも、次に文に処理が移るまでに時間がかかる現象がこちらの環境で発生しています。 原因を調査した結果、DXライブラリを変更して入力にDirectInput7ではなくDirectInput8を使うようにしたらこの現象が解決しました。 DXライブラリのバージョンはVer3.16b OSはWindows 7 64bitとWindows 8.1 64bit 開発環境はVisual Studio 2013 です。 再現プログラムは下に貼り付けておきます。 「int k = 0;」の行にブレークポイントを仕掛けて止まった後、F10でステップ実行を行うと現象が発生します。 またDebugビルドでもReleaseビルドでも現象が発生します。 (このプログラムではReleaseビルドだと変数の代入が消えてしまうので確認しづらいですが) お願いがあるのですが、この現象を回避するためにDirectInput8を使用するよう設定を行う関数を追加していただけないでしょうか? よろしくお願いします。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); if( DxLib_Init() == -1 ) return -1; for (;;) { int k = 0; if (ProcessMessage() != 0) break; } DxLib_End(); return 0; }
メンテ

Page: 1 |

Re: ステップ実行が重い ( No.1 )
名前:管理人 日時:2016/03/27 22:12

DirectInput を使用するとステップ実行が異様に重くなる現象は知っていたのですが、 DirectInput8 であればこの現象が発生しないというのは初めて知りました ( 因みに手元の環境( Windows7 64bit )では数ヶ月前から DirectInput7 でも 重くならなくなりました…謎です ) 異様に重くなる現象を回避するために、DirectInput が必要ない限り DxLib_Init の前に SetUseDirectInputFlag( FALSE ) ; を記述してこの現象を回避していたのですが、DirectInput8 を使用すれば解消できるのでしたら、 他の方の状況も改善できるかもしれませんので、とりあえず基本的に DirectInput8 を 使用するようにしてみました よろしければこちらのバージョンでは変更なしで件の現象が発生しないか試してみてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: ステップ実行が重い ( No.2 )
名前:lltcggie 日時:2016/03/28 00:44

DxLibVCTest版を試してみました。 結果、現象が発生しないことが確認できました。 何もしていないのに、ある時を境に現象が発生しなくなるというのは謎ですね… とりあえずこちらの環境ではDirectInput8を使用すれば現象は発生しなくなるので、 現象が発生している他の方もこれで直るのか試していただきたいところですね。 今回も対処していただきありがとうございました。
メンテ
Re: ステップ実行が重い ( No.3 )
名前:管理人 日時:2016/03/28 04:04

すみません、No.1 の書き込みの時刻にアップしていた暫定最新版に ・縁付き文字を描画すると SetDrawBright の設定が変更される という致命的なバグがありました 修正版をアップしましたので、お手数で申し訳ありませんがこちらをお使いください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存