処理効率について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
名無し

処理効率について

#1

投稿記事 by 名無し » 14年前

はじめまして!現在DxLibを使わせていただき、通信系の関数を使用してTCP/IPで通信を行うアプリを製作しているのですが。。。。どうもテスト起動する度にCPUの使用率&メモリ使用率が跳ね上がってしまいます。無駄な処理が沢山ありメモリを無駄に使ってしまっていることは百も承知です><
 プログラミング暦はないに等しいのですが。 この問題を解決しようとまずポインタを使った徹底したメモリ管理。分岐命令を多様した処理を施して再度作り直しました、が思うような結果がでません。

 私が思うところ、Dxライブラリの関数(通信系にかかわらず)がプログラム全体の処理を重くしている原因かと・・・それか私のループ処理の組み方に問題があるのかもしれないです。

 主にメインループは while(!ProcessMessage()){ } で中の処理を回しています。このループをネストしている部分も多々あります><

>>長々となりましたが私が聞きたいのは!どのようにすれば効率のいい処理が実現するのでしょう?です。みなさんのアドバイスお持ちしてます>< (開発言語はC言語 コンパイラはビジュアル2008です)

toyo

Re:処理効率について

#2

投稿記事 by toyo » 14年前

ループが全速力で回ってますね
実行に差し支えがなければ
while(!ProcessMessage())
{
//処理

Sleep(1);
}
のようにループの最後にSleep入れたら使用率は下がりますよ

toyo

Re:処理効率について

#3

投稿記事 by toyo » 14年前

メモリに関しては時間と共にどんどん上がっていくならメモリリークが考えられます
一定なら問題はないと思いますが

名無し

Re:処理効率について

#4

投稿記事 by 名無し » 14年前

>>toyoさん
アドバイスありがとうございます。Sleep関数は既に組みこんであります、メモリリークの可能性はありませんでした。

ほかに処理を重くしている原因があるとすればなにがあるんでしょう…プログラムの処理手順などで質問がありましたらお聞きします(゜Д゜)

softya

Re:処理効率について

#5

投稿記事 by softya » 14年前

原因を調べるためにソースコード見せていただきたいのですが。

名無し

Re:処理効率について

#6

投稿記事 by 名無し » 14年前

while(!ProcessMessage()){
if(buff_flg(nethandle)==1){
dtout(nethandle); //ファイルを受信し配列に格納
outfile(file_pt); //格納先の配列をファイル出力
}else{
lostcn=GetLostNetWork(); //相手の切断確認
if(lostcn==cn){
ClearDrawScreen();
break;
}
}
}

>>ざっとこんなメインループです。それぞれ関数がありますが気にしないでくださいw 相手からの接続を待ち受けて(サーバー機能)接続あれば以下の処理をする。という感じです 主な使用関数は GetNewAcceptNetWork(); GetNetWorkDataLength(); NetWorkRecv(); です。 

名無し

Re:処理効率について

#7

投稿記事 by 名無し » 14年前

>>追記
すみません。自己解決いたしました! みなさんありがとうございますです^^

閉鎖

“C言語何でも質問掲示板” へ戻る