ページ 1 / 1
プログラムを起動するととても重くなる
Posted: 2012年9月27日(木) 21:39
by へぶん
case,switch,ifを主に使い、画像を取り入れてゲームを作ってみたのですが、
デバッグをすると最初の方はスムーズに動くのですが、
カーソル操作やcase1 -> case 10 などの動きを少ししていると、
突然動きがラグくなり、とてもデバッグできることができなくなってしまいました。
リリースにして、exeで起動しても同じ症状が起こってしまいました。
PCのスペック不足とは思えません。
このような原因になるものというのはどのようなものがあるのでしょうか?
ループのところに画像のロードがあるのは原因になるのでしょうか?
Re: プログラムを起動するととても重くなる
Posted: 2012年9月27日(木) 21:50
by Ryo
へぶん さんが書きました:ループのところに画像のロードがあるのは原因になるのでしょうか?
動かし続けいるうちに重くなるのは
たいてい、メモリーやGDIなどのリソースのリーク(解放忘れ)
この場合、画像をロードしても解放しないでしつこくロードしてる可能性がある
使ってる開発ソフトがわからないけど
たいていの場合、デバッグモードで動かして、終了させれば、リークの表示はでる
もしくは、タスクマネージャで、異常な値がでていないか確認する
Re: プログラムを起動するととても重くなる
Posted: 2012年9月27日(木) 21:50
by zxc
詳しいコードが載っていない以上、推測することしか出来ませんが
コード:
~~~~~
while(1){
Graphic_handle = LoadGraph("XXXXX.jpg");
~~~~
}
このような構造があってはならないのか、と聞いているならば、
基本的にあってはならない構造だと思います。
ロードは一回だけ、何度もやるのは描写の処理です。
他にも何度もする必要がないものはループに入れないでください。
Re: プログラムを起動するととても重くなる
Posted: 2012年9月27日(木) 21:51
by softya(ソフト屋)
遅くなります。
どんどんプログラムがメモリを消費しているはずですので、タスクマネジャーのプロセスで確認してみてください。
Re: プログラムを起動するととても重くなる
Posted: 2012年9月27日(木) 22:10
by へぶん
その通りでしたw
ちなみにVC2010を使っています。
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 )
の下にロードを貼ってしまっていました。