No.1ベストアンサー
- 回答日時:
関数呼び出しは、サブルーチンコールのマシン語にコンパイルされます。
cpuはこのときキャッシュに収まらないほど遠いアドレスにジャンプしなければないかもしれませんし、ジャンプの前、リターンの後には、レジスタの待避、復旧もしなければなりません。つまり、関数呼び出しは大変、コストがかかるのです。
このため、短い処理の場合は、関数にせず、関数マクロで記述するのが一般的なやり方です。
No.3
- 回答日時:
具体的にどんな処理を行っているのか、コンパイラの種類、自作関数の実装等に依存します。
もっと詳しく見てみないと何ともいえません。一般的には、(インラインでない)関数を使った場合には、呼び出しによるオーバーヘッドが発生します。
具体的には、引数や返却値のコピー、サブルーチンのコールとリターン、C++の場合には、コンパイラによっては、例外処理のためのコードが埋め込まれます。
自作関数というのが、「毎回同じ処理」とおっしゃっているものと同じ内容の処理しかしていないのであれば、インライン関数にすれば問題は解決できるかと思います。
No.2
- 回答日時:
がると申します。
えっと。取り合えず前提を
・ある共通な処理を関数化する
or
・ある共通な処理を関数化せずコピペする
としますがよろしいでしょうか?
理論的にはコピペしたほうが早くなります。関数化すると、その関数をcallするために、いくつか後ろで処理が走りますので。
ただ実際にはそーゆーことはコンパイラがやってくれます。gccをお使いでしたら、-Oというオプションで指定すると(例:-O3など。コンパイラ毎に違うので詳しくはご利用のコンパイラのマニュアルをご覧ください)そういうことをやってくれます。
この回答へのお礼
お礼日時:2005/11/14 11:47
回答ありがとうございます。
コピペする方が速くなるのですね。
-Oというオプションを指定することができるのですということなので調べてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- 物理学 時間を語るなら、(複数の時間の正体)を知る必要が有る。 1 2023/02/16 22:14
- 物理学 光速度に近い速度で移動しても、時間や時計の動きが遅くなる?等は、あり得ない。 3 2022/09/24 00:47
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
- 発達障害・ダウン症・自閉症 処理速度(ワーキング処理)の数値が低い人は同時作業が苦手だそうですが、弾き語りは難しいでしょうか。 3 2023/03/30 14:16
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- 物理学 物理(車関係)について教えて下さい。 2 2022/08/12 16:43
- 仕事術・業務効率化 スローライフって、どう思いますか? 1 2022/11/07 03:31
- 発達障害・ダウン症・自閉症 WAISⅲについて 全検査 99 言語理解 88 知覚統合 110 作動記憶 92 処理速度 86 1 2022/11/22 10:18
- 物理学 特殊相対性理論を、完全否定に成功~ガンマの数式は、成立しない。 2 2023/03/08 19:30
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
win10で、正確な待ち時間の作り方
-
テキストファイルの空行をスキ...
-
C言語:関数を使うメリットとデ...
-
ExcelVBA処理経過をリアルタイ...
-
Macターミナルで実行中のプログ...
-
sendkeysにてALT+CTRL+INSERTを...
-
タスクマネージャーのプロセス...
-
マインスイーパ、自動解析プロ...
-
system関数を使用してsuコマン...
-
VB6.0 SHELLで起動...
-
VBAの配列サイズとメモリに関して
-
H8/OSを用いた割り込みで困って...
-
StrConvの使い方について教えて...
-
C++Builderでペイントソフト
-
起動中のEXCELファイル(EXCEL...
-
closeとメモリの開放について
-
プロセスIDからウィンドウハ...
-
explorer.exeが異様にメモリを食う
-
コアダンプって何ですか?
-
メモリが不足しています(VBA)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
win10で、正確な待ち時間の作り方
-
小数点を含む数値かどうか判断...
-
Excel VBAにて、2GB超の点群デ...
-
SQLの速度をあげるには・・・
-
絶対パスの取得について
-
WebBrowserの読み込み待ちの処...
-
プログラム上のCPU稼働率低減に...
-
C言語 再帰処理のメリットとデ...
-
テキストファイルの空行をスキ...
-
実行時のCPU使用率を増やしたい
-
C言語 時刻差分の算出方法
-
Excel VBA データ削除の高速化
-
VBでの簡易電卓の作成(減算方...
-
Excel(VBA)でSetTimer関数を使...
-
プログラミングの授業でPython...
-
If Not c Is Nothing Then ~延...
-
C言語で、文字とか入力されなく...
-
C言語:関数を使うメリットとデ...
おすすめ情報