• 締切済み

C言語の処理速度について

こんにちは C言語を使い始めました。 あるコードで ソース(1):デバッグ用にログを多めに吐き出すようにしているソース。 ソース(2):ソース(1)からログ排出だけコメントアウトしたソース。 を作ってみました。 ですが、 ソース(1)で機能確認後、ソース(2)にすると途端に処理速度が遅くなります。 (1)(2)で実質的な違いはログ排出のみなのですが、理由が分からず困っています。 【質問】 C言語でログ排出だけカットしたソースの方が処理速度が異様に遅い。 この対処策を質問させて下さい。 もし同じ経験された方がおられましたら是非アドバイスを頂ければ幸いです。 よろしくお願いします。

みんなの回答

  • ques9900
  • ベストアンサー率34% (47/136)
回答No.3

まぁソースを見てみないと解りませんが、 そのプログラムはマルチスレッドかなにかですか? printfとかのおかげで、スレッドやプロセス切り替えが発生して スムーズだった可能性はあるかもしれませんね。 使っていない変数の宣言をしたらプロセスが落ちるようになった とかいうのもC言語ではあるあるですね。 モバイルなら、UI描画のメインスレッドとワーカースレッドで何かやってませんかね。 それと異様に遅いという言葉ではなく、具体的な値を使いましょう。

全文を見る
すると、全ての回答が全文表示されます。
  • yama1718
  • ベストアンサー率41% (670/1618)
回答No.2

>(1)(2)で実質的な違いはログ排出のみ 本当にそうですか、ビルド設定をデバッグ用とリリース用と切り替えていませんか? 切り替えているなら、その違いが怪しいかもしれません。 多くはデバック用のビルド設定の方が ・デバック用のコード、ソースリストの対応データの埋め込みなど ・実行コードの最適化なし など、こちらの方が遅くなる要因が多いと思うのですが、 リリース用のビルド設定のコード最適化の設定も実行速度優先とコードサイズ優先のものがあり、それぞれトレードオフの関係になっている場合もあります。 一度、コードの最適化を全て外して確認してみると良いかもしれませんね。

全文を見る
すると、全ての回答が全文表示されます。
  • drum_KT
  • ベストアンサー率43% (1108/2554)
回答No.1

わかりませんが、意図せず必要な部分までコメントアウトされていないかとか、逆にコメントアウトしたはずの部分の一部がコメントアウトされずに残っていてロジックが変になっていないかとか、そういう観点は100%潰しましたか? 私も昔よくCで書きましが、コンパイルエラーの原因が「1」と「l」の打ち間違いだったり、「;」が一つ抜けていることだったり、そういう些細な部分であればあるほどなかなか発見できずにソースと格闘した記憶があります。笑

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • c言語でログイン処理はできますか?

    c言語は学んでいて、phpはまだ学んでいないので、c言語でやりたいのですが、 ログイン処理はできますか? また、できる場合、どんなソースになるんでしょうか? >>>>>そもそも、c言語で書いたプログラムをhtmlに載せるにはどうすればいいのですか? 急ぎです。。。。宜しくお願いします・

  • .NET C++の処理速度

    最近.NETについて調べていました。 .NETではコンパイル時にマネージドコードと呼ばれる中間ファイルが作成され、 それが.NETFramework上で動くという仕組みのため、C++で書こうがVBで書こうが 最終的にできあがるものは同じものになるということが分かりました。 私は、Cが有利な点は(Javaなど他の言語に比べ)処理速度が異常に早いことだと思っていましたが .NET上で動く場合はC++もVBも処理速度に差が出ることはあまりないのでしょうか? また、.NET、JVM、ネイティブのCの3つを比較した場合、 どのくらい処理速度に差があるでしょうか?(大雑把でもいいので) 私は [ネイティブC] >>>超えられない壁>>> [.NET] > [JVM] くらいかと思っているのですが‥ 以上、よろしくお願いします。

  • テキスト処理の速度の速い言語

    最大80MBまで増加するテキストファイルがあります。 あるアプリケーションのログファイルです。 最大80MBまで達します。 80MBまで達したら新しいファイルが作成され、 そこにログが出力されます。 このログファイルの中身を読み取り、 ある処理をして、計算結果や、必要な箇所を別のテキストファイルに 出力するプログラムを作成しました。言語はVBScriptです。 このプログラムを10分に一度実行する必要があります。 そこで問題になってしまったのが、処理時間です。 前回の処理が終わらないまま10分が経過して 次の処理が開始されてしまうのです。 特にまずいのがデータ量の多い期末や年度末です。 そこでVBScriptよりも速くテキスト処理を行える言語を教えて下さい。 BATでもJScriptでもPerlでもCでもC++でもJavaでも何でも良いです。 教えて下さい。 よろしくお願いします。

  • 素朴な疑問 (C言語とアセンブラの処理速度の違いについて)

    C言語で作成したプログラムをビルドして実行ファイルを作成するのと、アセンブラ言語(?)をアセンブルして作成した実行ファイルは、どうして処理速度が違うのでしょうか?例えば全く同じ処理を高級言語と低級言語で作成した場合、出来上がったそれぞれの実行ファイルの違いは、コンパイル時に吸収されてしまうわけではないのでしょうか?

  • c言語の画像処理プログラム

    画像処理を勉強している初心者です。これからいろいろな画像処理を勉強していく予定ですが、もっとも基本のc言語で画像を表示させる方法がわからないですが、プログラムのソースとやり方を詳しく教えていただけませんか?

  • C言語のソースを書く際使いやすい・・・

    C言語のソースを書く際使いやすいテキストエディタはないですか? メモ帳では横に行番号がないのでデバッグの作業が大変です。 なのでいいテキストエディタを教えてください、お願いします・

  • 音響信号処理をC言語でプログラミング

    音響信号処理をC言語でプログラミングを考えています。 理由としては ・現在はMATLABを使って信号処理しているが処理速度が遅い為 ・ロボット等のシステムに組み込む際C言語の方がよさそうだから 現在の目標は ・マイクロホンで録音した信号を読み込む。 ・録音した信号を短時間フーリエ変換する。 を考えています。 そこで質問なのですが (1)必要(便利)な機器,ソフトウェア (2)必要な知識(参考資料) について詳しい方がいらっしゃいましたらよろしくお願いします。

  • C言語の

    ものすごく基本的な質問をします。 C言語で作ったソースをVBで使用できるものなのですか? DLLをつかえば可能ということを聞いたことがあるのですが・・・・

  • C言語 ポインタと配列

    C言語で配列をあつかう場合、ポインタをつかうか、配列の添え字を使って処理するか迷うのですが、どちらが良いのでしょうか? 処理速度ではどちらが上でしょうか?

  • 計算速度の速いC言語を教えてください!

    C++、C++/CLI、C#のどれかを初めて勉強しようと思っているのですが、どの言語を学んだらよいでしょうか? 主にやりたいことは、スプレッドシート上での計算を数千万回繰り返す計算とグラフ描写です。 これまでVBAを使って為替相場の価格変動をシミュレートするプログラムを組んで、4万行の計算x300回程度の計算をずっとしてきました。ただ、EXCELのグラフ機能に不満なので、計算とグラフ描写もするソフトを自分で作ろうと思っています。VBAは基本的な構文(For,If, Whileなど)を理解して使っています。プログラミングはVBA以外に触れたことがないのですが、永くコンピュータと付き合いたいのでC言語を新しく勉強したいと思ってます。 そこで教えて頂きたいのですが、C++、C++/CLI、C#のどれを勉強するのがよいでしょうか?上記のような計算をした時に速度に大きな違いが出るのでしたら速い言語を勉強したいです。 あまり違いが出ないのでしたら、上記のような目的のソフトをWindows上で趣味として作り、末永く付き合える言語を教えてください。 ちなみに上記のような計算で、VBAでは10時間程度かかります。 質問が長くなってしまってすいません。C言語をご存知の方、ご教授くださいm(_ _)m