匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

C++のプログラミングに関する質問です。

<cstdint>にはfastが付く各サイズの型がありますが、
cstdint (C++11) - cpprefjp - C++ Library Reference https://sites.google.com/site/cpprefjp/reference/cstdint

これはどれだけ早くなるのでしょうか?
おそらくfastにすることで、多めにメモリを確保するので、
メモリの消費量は増えますが、
メモリアロケートで、計算コストを減らしていると思われます。

また、このfastを使った時に、メモリ消費量以外に背反は無いのでしょうか?

fastを使った時の計算時間評価の結果などの資料を知っている場合には、
教えていただけると幸いです。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/08/16 16:46:11
  • 終了:2014/08/23 16:50:03

回答(1件)

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2014/08/23 12:37:55

単純に CPU でレジスタI/O が最短ステップになるビット幅に切り上げているだけだと思うけれど。
http://stackoverflow.com/questions/5254051/the-difference-of-int8-t-int-least8-t-and-int-fast8-t

匿名質問者

回答ありがとうございます。勉強不足で知らないのですが、そうすると計算コストは減るのでしょうか?

2014/08/23 16:08:23
匿名回答1号

計算時間(コスト)ってつまるところ演算するのに何クロックかかるかってこと。
原理や最近の動向はこのあたりでも見て確認してください。

http://ufcpp.net/study/computer/CPU.html#arithmetic-instruction
http://ja.wikipedia.org/wiki/Streaming_SIMD_Extensions

マルチコアっていっても、結局一つの処理をするのは一つのコアなので、このあたりは結局ノイマン型の処理です。

で同一クロック数のPCで、演算が高速ってことはどれだけ少ないステップで計算するかってことです。
たいていの場合はバス幅で性能が出るように設計されているので、8ビット演算するより、64ビット(OSが対応していれば)で演算した方が早いハズ。

(コンパイラ性能の)真偽を確認するなら、生成されたアセンブラコードを、命令にかかるクロックを積算して比較してください。
(これができるようになるにはCPUの勉強がちょっと必要だと思うけれど。)

2014/08/23 17:28:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません