質問: 私は今アルゴリズムの高速化を考えています 簡易的に演算手順から高速化できているか知るすべがほしいです。 そこで、四則演算と論理演算の実行速度について普遍的で一般的な実効速度の比較が行われていないか探しています。 例えば、レジスタ内にすでに値がある状態から答えを得るまでの時間の大小関係または、具体的なクロック数などのデータはありませんか?
回答: アルゴリズムの改善であれば、普通は適当な擬似コードに落とした時の操作の総数をベースに考えれば十分です。ループのネストを減らしたり、枝刈りで処理を丸ごとスキップするのがアルゴリズム改善の常套手段なのは処理の総数が大幅に削減されるからです。個々の操作にかかる時間を気にしてそれを減らそうとするのは、言うなれば擬似コードの行数を減らそうとしているようなものです。 CPU命令のクロック数はコメントで指摘があるようにデータシート見れば載ってはいますが、パイプラインとかアウトオブオーダー実行とか分岐予測とかのないシンプルなCPUでアセンブラレベルのプログラムを書いているのでない限り、気にしても無駄です。今時のプログラミング言語やコンパイラを使っていると、単純な a + b という処理一つとってしてもそれが単純に加算命令になるとは限りません。