6

彼らの github ページにアクセスして、kde docs サイトから PDF マニュアルをいくつか見た後でも、私はまだ混乱しています。テスト コードに次の 2 行があるとします。

double a1 {asinh(1 / ep)};                   // 5 instr.
double b1 {log((1 + sqrt(1 + ep*ep)) / ep)}; // 12 instr.

は、ep事前定義できる値です。コメントは私のもので、コードブロックで、逆アセンブラーでデバッガーを実行し、辛抱強く「次の命令」を押してカウントすることによって行われます。これらは、「命令フェッチ」を表示するように設定した場合に Kacachegrind が言うことと一致します。それは理にかなっていると思います(私はC ++の初心者です)。しかし、「サイクル推定」に切り替えると、非常に奇妙な測定値が得られます。現在の例では、115and122ですが、次のように一見似ている他の表現もあります。

double Ap {1.0};
double ep {0.9};

show 222and 2(instr. fetch shows 2for both)! ここで何が起こっていますか?誰か説明してくれませんか?

4

1 に答える 1