07/12/07 01:47:55 aFfxRGbj0
>>377
>判った結果をしろうとにもわかるように噛み砕いておしえてください >>376
あくまでも自分が理解した(と思う)範囲だけども、
プロセスが 64bit のときは、デフォでカーネルとユーザーでアドレス空間の場所を分ける。
(ちなみに 64bit カーネルが鎮座する場所もすでに予定されているw)
で、さらにページテーブルのエントリをユーザーとカーネルで共有する。
すると、ユーザーモードからカーネルモードへスイッチするときにページテーブルを
再ロードせずに済む。
でも、これって結局 *BSD とか Linux がやってることと同じなようなw
いくつかシステムコールのベンチマークをしてみると、確かにこの仕組みがあると
1~3割程度速くなる場合があった。
ちなみに 32bit の場合は上記の仕組みはない。そのせいかパフォーマンス的にも
64bit で上記の仕組み off な場合ととほぼ同じ(= デフォの 64bit より1~3割程度遅い)。
技術的には同じことが 32bit でも可能な筈だが、いろいろ問題があるのかもしれない。
ま、これって純粋に 64bit だから速いというより Mac OS X 上の 32bit/64bit の実装の
差の結果速くなるという感じもするが...
なお、パフォーマンスの差は、俺がやった素朴な特定のテストの範囲内だけの話なんで、
そこんとこよろしく。