Buzz X64は32bitコード用プロセスが動いていた。

公開:2011-10-21 19:52
更新:2020-02-15 04:36
カテゴリ:その他api

Buzz 64ビット版がどのようなプロセスで動いているか確認してみた。すると、やはり32bit用プロセスが動いていた。

とするとRPCかアウトプロセスCOMかどちらかということになるのかな。

そうなるとやはり32bitコード呼び出しのオーバーヘッドはかなりあるのではないかと思う。解決策ってないのかなとググっていると、「64bit→32bitダウンサンクの開発」という記事があった。これはすごい!とおもって読んだが詳しくはメールでとなっており、法人限定のようだ。残念。。

しかし一般的にはダウンサンクはできないようだ。理由は「Why can't you thunk between 32-bit and 64-bit Windows?」に書いてある。あんまりちゃんと読んでないので間違っているかもしれないが、要するに16bit->32bitの過渡期は16bitコードと32bitコードのポインタのサイズが同じ32bitだったのでポインタ値を相互に変換(16ビットアドレスをセレクタ(セグメント)を使い32bitアドレス空間にマッピングする)すれば良かったのだが、32bit->64bitではポインタそのものが拡張されてしまったため相互に変換することができないためらしい。