[過去ログ] Visual Studio 2008 Part 22 (314レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
202(3): 2018/09/16(日)07:53 ID:SOVIz+sV(5/15) AAS
AA省
205: 2018/09/16(日)08:09 ID:SOVIz+sV(8/15) AAS
?-2 最適化無効 (/Od)(Release)
※ コードは?-2(>>202)と同じ
↓このコードの逆アセンブルコード
外部リンク:ideone.com
【実行結果】
※ ?-2(>>203)と同じ
省1
206(1): 2018/09/16(日)08:20 ID:SOVIz+sV(9/15) AAS
?-1、?-2の逆アセンブルの出力結果を比較すると原型をとどめてないぐらいグチョグチョに違う(最適化のせいと考えられる)
?-1、?-2の逆アセンブルの出力結果を比較すると差異はほとんどない(?は両方ともまったく最適化されてないから当然)
?-1と?-1の逆アセンブルの出力結果を比較すると原型をとどめてないぐらいグチョグチョに違う(?-1のコード(>>200)ははげしくウンコ最適化されてると考えられる)
?-2と?-2の逆アセンブルの出力結果を比較すると差異はほとんどない(?-2のコード(>>202)はあまり最適化されてないと考えられる)
はっきりいって、これ以上見る気もしないしテキトーだが
ウンコみたいな最適化で演算の順序が入れ替わったせいで、誤差が発生しているものと考えられる
241: 2018/09/16(日)16:54 ID:LrdaMWHl(3/5) AAS
>>237
ああ。また訂正。
sqrt()が使われていないのは、>>200 >>201 >>202 >>203 の場合で、
それは、ループ内にfprintf()を入れた場合と入れない場合とで、
x87 fpuレジスタのst(0)〜st(7)を使う「期間」が変わるために 80BITから
64BITへの書き戻し丸めの問題のために精度が変わっているだけだった。
一方、あなたが指摘した >>191 では、ちゃんと sqrt() 関数が使われていて、
それだと、IDEからの起動とコマンド・プロンプトからの起動とで、精度が変
わってくると。そして、その場合の逆アセンブル結果は >>235 のように
sqrt() 関数がその場で x87 fpu の fsqrt 命令を使わずに、call 文によって
省3
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s