No.17620![]() |
メモリ領域 投稿者---samsara(2004/10/29 16:54:18) |
||
C/C++でアプリケーションを作成する場合に、メモリはどれだけ利用する事が可能なのでしょうか? 1つのアプリケーションが利用できるメモリの上限は決まっているのでしょうか? それとも、物理的なメモリとスワップ領域があれば、その分を1つのアプリケーションで どんどん確保していけるものなのでしょうか? つぎのような環境でプログラムを作成しています。 環境1:Windwos/C++Builder 環境2:Linux/GCC |
No.17621![]() |
Re:メモリ領域 投稿者---επιστημη(2004/10/29 16:58:35) |
||
>それとも、物理的なメモリとスワップ領域があれば、その分を1つのアプリケーションで >どんどん確保していけるものなのでしょうか? WindowsでもLinuxでも、取れるだけ取ってくれるはずです。 |
No.17623![]() |
Re:メモリ領域 投稿者---samsara(2004/10/29 17:21:03) |
||
>>それとも、物理的なメモリとスワップ領域があれば、その分を1つのアプリケーションで >>どんどん確保していけるものなのでしょうか? > >WindowsでもLinuxでも、取れるだけ取ってくれるはずです。 早速の返答ありがとうございます。 ってことは、もし全て使い果たしたら全てのアプリケーションでメモリが取得できなくなるのですね。 あと、スタック領域にもガンガン積んでよろしいのでしょうか? スタック領域の上限はあるのでしょうか? |
No.17628![]() |
Re:メモリ領域 投稿者---REE(2004/10/29 18:14:31) |
||
>あと、スタック領域にもガンガン積んでよろしいのでしょうか? >スタック領域の上限はあるのでしょうか? 上限はあります。 これはコンパイルオプションで設定出来るかもしれません。 |
No.17629![]() |
Re:メモリ領域 投稿者---Ban(2004/10/29 18:15:36) |
||
>あと、スタック領域にもガンガン積んでよろしいのでしょうか? >スタック領域の上限はあるのでしょうか? Windows のスタックは、スレッド毎で上限があります。 これを超えると実行時に死にます。Linux も基本的には同様です。 例えば VC だとデフォルトでは1MBが確保されますし、 設定はたいていビルド時のオプション等で変更可能なはずです。 |
No.17630![]() |
Re:メモリ領域 投稿者---samsara(2004/10/29 18:33:20) |
||
REE様、Ban様、ありがとうございます。 |
No.17622![]() |
Re:メモリ領域 投稿者---tetrapod(2004/10/29 17:20:38) |
||
システム管理者の決めた制約以内でなら、と但し書きつきでしょうか。 Linux とかなら ulimit の範囲内でしか取れません。 Win32 の場合は OS そのものの制約により1プロセスが取得できるメモリは 2GB までに制約されます。 実メモリ量より多くのメモリを確保してしまうと、プログラムの組み方によっては スラッシングを起こして実用にならないかもしれません。 |
No.17624![]() |
Re:メモリ領域 投稿者---samsara(2004/10/29 17:30:01) |
||
>システム管理者の決めた制約以内でなら、と但し書きつきでしょうか。 >Linux とかなら ulimit の範囲内でしか取れません。 >Win32 の場合は OS そのものの制約により1プロセスが取得できるメモリは >2GB までに制約されます。 どうもありがとうございます。OSによって決まるのですね。 アプリケーション作成時にコンパイルオプションとかで設定できるのかなぁと 思ってました。 |