Re: インライン展開とキャッ シュヒット率?
河野真治 @ 琉球大学情報工学です。
In article <bna4dl$1gob$1@maha2.doga.co.jp>, Masamichi Takatsu <taka2@doga.jp> writes
> というか、最近のCPUは賢いので、引数がレジスタ渡しにさえなっていれば
> サブルーチンコールのオーバーヘッドはほとんど無いって感じです。
In article <seznfrxneg.fsf_-_@astec.co.jp>,Takuya KUDO <kudo@astec.co.jp> writes
> いや、それがですね。実際、速度計測してみたんですけど
> レジスタウィンドウに入りきる量ならば inline 展開より
> 関数コールの方が速かったです。
この辺りの仮定が結構怪しいんだよな。その末端の関数だけじゃなくてそこまでの
過程で呼ばれた関数の履歴が関係するんだよね。
浮動小数点とかはレジスタとかウインドに乗らないし、使っているレジスタの
待避とかもあるし。引き数渡しに使ったレジスタは必ず待避が必要ですよね。
単純にinlineにしたから速くなるってことは、もちろんないんだけど。
関数呼び出しのオーバヘッドがないってわけでもないです。
---
Shinji KONO @ Information Engineering, University of the Ryukyus,
河野真治 @ 琉球大学工学部情報工学科,
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735