[過去ログ] ゲームプログラミング相談室【Part5】 (970レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
652(1): 03/12/15 06:23 ID:oFhmW6Op(1) AAS
>630
Windowsではプログラムを実行する際、まずEXEファイル全体をそのまま
論理メモリ空間に読み込みます。
まず、でかいプログラムだと多くのメモリ空間が必要になり起動も遅くなります。
そして、プログラムというのはどんなソフトでも大抵他のプログラムと
共通化出来る部分というのがあり、そういう部分はDLLとして分離しておき、
他のプログラムと共有して使うのが一般的になっています。
そうすることで使用するメモリ量を減らすことが出来ます。
(VBのランタイムDLLなどがこの顕著な例)
ちなみに、論理メモリ空間というのは仮想メモリによって実現されてる
仮想的なメモリ空間で、一般的には物理メモリと同じではなく、
32bit Windowsの場合、どのプログラム(プロセス)も4GBのアドレス空間を
持っています。
物理メモリは当然4GBも無いPCが普通なので、部分的に物理アドレス空間に
マッピングし、いわばのぞき窓を切り替えていくことによって、広大なメモリ空間を
使えるようにしています。
しかし、物理メモリ空間ではないからでかいプログラムでも問題ないかというと
そうではなく、実際は使用しているメモリ空間が大きく分散しているほど、
キャッシュミスにつながる傾向が多くなり、その分パフォーマンスが落ちることになります。
でかい単一のEXEでプログラムを提供することによるメリットは
実際ほとんどありませんが、あるとすれば緊密な結合レベルによって
不整合が発生するのを抑えられるというくらいでしょうか。
上下前次1-新書関写板覧索設栞歴
あと 318 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.030s