アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲを呼ぶ -- ある傍観者
コンパイラに勝つ方法 (スコア:1)
ちょっとバイナリから外れるけど(汗
Re:コンパイラに勝つ方法 (スコア:2, 興味深い)
まだキャッシュと言うものが無くてCPU内部クロックとメモリアクセス速度とが同じ時代はいろいろありましたがね。
アドレス演算はインクリメントよりデクリメントの方が速かったとか、
割り算より掛け算が早いから逆数掛けてシフトするとか、
1/4正弦テーブルで16bitSinCosを引いてくるとか、
PCレジスタ相対でアドレス求めるとクロックが1稼げるとか(1命令3クロックとか4クロックの時代)、
任意の範囲でループ無しのテーブルジャンプでメモリコピーとか(いまではキャッシュに収めてループの方が早い)
ハハハ
Re:コンパイラに勝つ方法 (スコア:1)
>2. 割り算より掛け算が早いから逆数掛けてシフトするとか、
>3. 1/4正弦テーブルで16bitSinCosを引いてくるとか、
>4. PCレジスタ相対でアドレス求めるとクロックが1稼げるとか(1命令3クロックとか4クロックの時代)、
>5. 任意の範囲でループ無しのテーブルジャンプでメモリコピーとか(いまではキャッシュに収めてループの方が早い)
1,4 ---- そんなことはコンパイラが知っている
2,3,5 -- アセンブラに特化した手法ではなく高級言語で書けばよ
Re:コンパイラに勝つ方法 (スコア:1)
文脈読んでくださいね~、だれも今の超絶アセンブラの例など書いてませんよと。
AZUCOさんが「そうです。いわゆる旧世代の高速化技法というのはほぼ死滅したわけで、」と書けるのは文脈読めてるからですよね。
ちなみにコンパイラを過信すると・・・ってのはよくある話です。
当時のコンパイラだって”コンパイラが知っている”ハズのことをやってないのは珍しくもないし今でも・・・。
>2は「シフト」とあるんで固定小数の話かな?
>整数除算命令がない(ので関数呼び出しになる)とか極めて遅いCPUとかあるので
Re:コンパイラに勝つ方法 (スコア:0)
(正確にはUINT_MAX/3+1をかける)