人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows APIの MapViewOfFile について教えてください。

MapViewOfFile によって割り当てることの出来るビューのサイズは実メモリの搭載量によって影響されるものなのでしょうか?

MapViewOfFileによる割り当てはプロセスの仮想メモリ空間への割り当てのため、実メモリ搭載量には関係ないように思えるのですが、実際には影響を受けているように思えます。

はたして実メモリ搭載量は MapViewOfFile で割り当てられるビューのサイズの最大量に影響を及ぼすのかどうか、また及ぼすのであれば、その仕組みを教えていただけないでしょうか?

(実メモリが十分にないところで大きなビューを割り当ててもパフォーマンス上、問題があるということは理解しておりますので、あくまでも仕組み上はどうなのかというところを教えていただければありがたいです)

●質問者: you1982
●カテゴリ:コンピュータ 学習・教育
✍キーワード:API Windows サイズ パフォーマンス プロセス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kurukuru-neko
●1ポイント

>実メモリ搭載量は MapViewOfFile

http://support.microsoft.com/kb/830783/ja

>割り当てることの出来るビューのサイズ

割り当てが出来るビューのサイズは、実メモリー及び

連続してメモリー上に割り当て可能なアドレス空間が

あるかどうかが問題になる。

一般的な32bitのWindowsでは仮想アドレスの

総合計が通常2Gに制限されている。

http://support.microsoft.com/kb/818894/ja

http://support.microsoft.com/default.aspx?scid=kb;ja;888732

◎質問者からの返答

ありがとうございます。ただ、申し訳ありませんが、ちょっと分かりにくいです。

3番目のURLにあるように32bitプロセスでの仮想アドレス領域は2GBあるわけで、MapViewOfFileを呼び出したプロセスの2GBの仮想アドレス領域内に連続した空き領域があればビューの割り当てはできるように思えるのですが、いかがでしょうか?

「割り当てが出来るビューのサイズは、実メモリー及び連続してメモリー上に割り当て可能なアドレス空間があるかどうかが問題になる」とご回答いただいた中の、「実メモリー」がビューのサイズに影響を及ぼすという点について、ソースあるいはその仕組みをご存じでしたら教えていただけないでしょうか?


2 ● kurukuru-neko
●70ポイント ベストアンサー

>2GBの仮想アドレス領域内に連続した空き領域があれば

>ビューの割り当てはできるように思えるのですが、

すべてのプログラムの合計なので現実は2Gは不可能です。

実験では1.5G程度でした。

http://itpro.nikkeibp.co.jp/article/Windows/20051111/224393/?ST=...

以下のページ化プール領域の最大が470M,非ページ化プール領域

256Mの制限があります。両方ともすべてのアプリ・OSで

共用されています。 いずれも通常自動でサイズが計算され

利用されています。

最悪1Gのファイルマッピングを行う場合最悪100Mのページ

化プール領域が必要ですが。 そのサイズの空は通常

システム搭載のRAMに比例して自動決定されます。

(PagedPoolSize,NonPagedPoolSize)

通常実メモリーから自動計算されるので結果実メモリー

に依存することになります。

以下にありますが、OSの改善によりできるサイズが拡大

されてはいますが。 すべてのWindowsではありません。

http://msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/

プールに空きがプログラム動作時に空きあれば動作するし

なければ動作しません。

◎質問者からの返答

度々のご回答、どうもありがとうございます。

大ざっぱに言えば、実メモリのサイズがページ化プール領域と非ページ化プール領域のサイズに影響を及ぼし、そしてプール領域のサイズがマッピングできるファイルのサイズ(あるいはビューのサイズ、またはその両方)に影響を及ぼす、という仕組みですね。

細かい数値の計算方法についてはよく理解できていない部分もありますが、仕組みについてはよく分かりました。どうもありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ