C言語で、浮動小数点の型に何を使用するか。

  • このエントリーをはてなブックマークに追加
  • Pocket

CPU:Xeon, gcc4.1, intel c10.1 ともに。

float 4bytes

double 8bytes

long double 16bytes

最適化なしで。

floatの足し算の方がdoubleの足し算よりも遅い。3./5倍ほど違う。

キャストしなあかんから。だったけ。

64ビット系でも同じだった。

iccだと、とてもとても早い。

省メモリをとるか、計算速度をとるか。ですか。

キャッシュに収まらないほどの数値を扱うなら、floatもありですかね。

最適化したら、また違うでしょう。


Xeon E5xxx

1CPU使用して

足し算を10000000回くらい。

最適化なし。

gcc -O0 -o add add.c

time ./add

の結果。

float

real 0m0.058s

user 0m0.060s

sys 0m0.000s

double

real 0m0.039s

user 0m0.036s

sys 0m0.000s

long double

real 0m0.042s

user 0m0.040s

sys 0m0.000s

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す