輝々凛々

ガンバるってことは、素晴らしい事だ。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ツッコミの投稿


(ツッコミ非公開の場合はチェック)

scanfでdoubleは最悪。

ニ倍近く早いのです

今さらだけど、scanf/sscanf/fscanfを使ってfloat/doubleの値を読み込もうとすると、やたらめったら遅いのです。元データが整数値であるなら、intで読んでからdoubleにキャストするほうがニ倍近く早いのです(たぶん)。

サンプル

// before
for (i = 0; i < 100000; i++) {
  fscanf(fp, "%lf", &data);
}

// after
for (i = 0; i < 100000; i++) {
  int tmp;
  fscanf(fp, "%d", &tmp);
  data = (double)tmp;
}
関連記事

ツッコミの投稿


(ツッコミ非公開の場合はチェック)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。