管理人の趣味メインのメモto日記
AIONブログ RSS [情報サイト表示]
[注意] LinkやRSSについて

シエルサーバ RSS [情報サイト非表示]

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ -------- (--) --:-- ]  
   Category:スポンサー広告

・ω・)ノ
 
備忘録・・・・ (-ω-
 
 
 
 
 
<本日のトピックス>
[ITメモ] 32bitアプリで2GB以上のメモリを利用する
 
 
[ITメモ] 32bitアプリで2GB以上のメモリを利用する
過去に何度か記載しているように、32bitアプリケーションのメモリ使用量は、
1つのアプリケーションあたり、基本的に2GBが上限となっています。
今までは、OS自体が32bit主流でメモリ上限が4GBであり、さらには3GBスイッチが
OFFの環境下ではアプリケーションが自由に使えるメモリ空間は最大2GBだったので
あまり気にする必要はありませんでした(そもそも、3GBスイッチをONにしても、
1つのアプリで2GB以上の空きがある状態は珍しい気もします)。
 
しかし、ここ数年64bitOSを利用されるユーザが増えてきていることもあり、
32bitアプリケーションであっても、2GB以上のメモリを利用できる可能性が
あるのも事実。
 
そこで、32bitアプリケーションの利用可能メモリ2GB上限を4GBまで増やす方法が
簡単にできるようなので、備忘録として残しておこうと思います。
ちなみに、以下の内容(32bitアプリケーションのメモリ利用上限を4GBに上げる方法)は
開発サイドでしか変更できません。
 
 
基本的に、32bitアプリケーションで4GBのメモリ空間を利用できるようにするには、
LARGEADDRESSAWAREと言うオプションをリンカーのオプションとして付加し、
ビルドすることで、最大4GBのメモリ空間まで確保することができます・・・・が、
実際確保できるかどうかはソフトが動作する端末のメモリ料に依存します。

私の場合、Windows上のC/C++アプリケーション開発を行う場合、VisualC/C++で
開発をしているので、LARGEADDRESSAWAREオプションは、以下の箇所で設定変更できます。

20120925_01.jpg

32bitアプリケーション(と言うか、32bitコンパイラ)を利用していると、
デフォルト設定はOFFになっているため、アプリケーションのメモリ利用上限は2GBです。
64bitアプリケーション(と言うか、64bitコンパイラ)を利用していると、勝手にONに
なるため、意識せず2GB以上のメモリを利用することができます。
 
 
 
さて、製作サイドでしか設定できないと記述しました。これに関しては
どうしようもありません。しかし、現在利用しているアプリケーションに対して
LARGEADDRESSAWAREオプションがONなのかOFFなのかは、調査することができます。
 
過去に何度か出てきた「dumpbin.exe」に対して「/headers」にて調査をすると、
以下の様な差分が発生します。
 
■ LARGEADDRESSAWARE:OFFの場合
 
PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
14C machine (x86)
6 number of sections
50603931 time date stamp Mon Sep 24 19:42:57 2012
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
102 characteristics
Executable
32 bit word machine 
 
 <以下省略>
 
 
■ LARGEADDRESSAWARE:ONの場合
※ LARGEADDRESSAWAREの設定をONにしてリビルド
 
PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
14C machine (x86)
6 number of sections
506104C8 time date stamp Mon Sep 24 19:51:36 2012
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
122 characteristics
Executable
Application can handle large (>2GB) addresses
32 bit word machine
 
 <以下省略>
 
2GBの上限撤廃をしたアプリケーションは、赤色の1行が追記されて出力されます。
自分が開発する上では、あまり気にしなくてよい気もしますが・・・・ちょっとした、
知識として忘れないように、自分が理解できた範囲での備忘録・・・・でした。
 
 
スポンサーサイト
[ 2012-09-25 (Tue) 12:00 ]   Comment(0)
   Category:雑記:IT関連
管理者にだけ表示を許可する

TrackBackURL
→ http://extremes.blog40.fc2.com/tb.php/571-54ee70bf
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。