アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
う~ん (スコア:1)
なかなかチューンアップするのは難しいですよん。
やっぱり、自分で手を入れたほうがいいって言える人は
結構優秀なのだと思います。
私もBASICとアセンブラ(当時の石はZ80)から入ったので、
コードをカリカリにチューンするのは嫌いじゃないんですけどね。
Re:う~ん (スコア:1)
内部がRISCエンジンで作られたハードx86エミュレータですよね。
だから、中で具体的にどう処理されるのかはわからないし、制御も難しい。
結局、パイプラインをフルに稼働させ、最大限の能力を引き出すコードを書く前に、
命令デコーダのクセを掴んでどうやるか…とかそういうレベルになるわけで。
# 4ー1配列とか聞いたけど、詳しくは知らない。
実際にはEAX、EBX、ECX、EDXとかのレジスタがあるわけではなく、
内部の何十本とある、RISCエンジンの内部レジスタのうち、
どれかに格納されているのでしょうし、外部からはメモリ上にあるはずのデータが
キャッシュに載ってるのか、レジスタリネーミングで内部レジスタに
格納されているのか、本当のところはわからない。
任意の割り込みでどれほどCPUのキャッシュが荒れているのかだって不明。
MMXとか、SSEとかを使って特定の状況でパフォーマンス改善っていうのなら、
対応した特定のコードを入れて高速化できるんだろうけど、
普通のコードをアセンブラで組んだ場合、下手をすると
アウトオブオーダでぜんぜん違う順番の実行をしてたりすることもある。
CPUにおまかせできるっていう点では便利なんだろうけど、
結局命令デコーダの特性やら、実行ユニットの数や処理能力によって
内部の処理は大きく変化するので、「なんだかな~」と感じます。
Pentium4なんかだと、倍速ALUがあるから、凝ったシフト演算を
かけるより、単純な加減算を繰り返したほうが速かったりしますし、
トレースキャッシュというものを積んでますが、あれは確か、
変換済みのRISCコードをキャッシングしてしまう技術ですよね。
どのくらいのコードならうまくキャッシュに収まるのか判断がつきにくい。
キャッシュ容量によってはループを展開したほうが速い場合と、
分割してもっと小さいループにしたほうがいい場合ってのがあるはずですが、
困ったことにこの容量はCPUのタイプだけでなく、グレードによっても違う。
もちろん、パイプラインの段数によっても命令の流し込み方は変えたほうがいいわけで、
そういったこまかい特性をいちいち考えてコードを組むぐらいなら、
いっそ優秀なコンパイラにおまかせして…となるんですよねぇ。