彼らの 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 ++の初心者です)。しかし、「サイクル推定」に切り替えると、非常に奇妙な測定値が得られます。現在の例では、115
and122
ですが、次のように一見似ている他の表現もあります。
double Ap {1.0};
double ep {0.9};
show 222
and 2
(instr. fetch shows 2
for both)! ここで何が起こっていますか?誰か説明してくれませんか?