アプリ版:「スタンプのみでお礼する」機能のリリースについて

Linuxで、メモリをたくさん使うようなテストプログラムを作りたいのです。
メモリといっても、プログラムコードの入っているテキスト領域、データの入っているデータ領域、ヒープ領域などがあると思いますが、
これらのいずれかのみをたくさん使うようなプログラムを作りたいのです。
例えば、サイズの大きなプログラムであれば、テキスト領域が大きくなったり、
大容量の文字列を扱ったりすると、データ領域が大きくなったりするんでしょうか?
関数とメモリ使用量の関係があまり分かっていません。
どうか教えてください。

A 回答 (3件)

#1です。


>テキスト領域を大量に確保するには、無駄に長いプログラムを書けばいいのでしょうか?
はい、その通りです。
>mallocした領域にデータを書き込むと、今度はデータ領域がたくさん使われるのでしょうか?
いいえ、mallocした領域は、ヒープ領域であり、ヒープ領域にデータを書き込んだからといって、データ領域が増える訳ではありません。

コーディングでは、以下のようになります。
-----------------
#include ....ヘッダファイル
char data1[256];  ・・・・データ領域
main()
{
data data2[256];  ・・・・スタック領域
if (・・・){    ・・・・テキスト領域
・・・
}
malloc(3000)    ・・・ヒープ領域へ確保
}

main等の関数の外側で確保した領域は、データ領域に取られます。
main等の関数の内側で確保した領域は、スタック領域に取られます。(static指定を除く)
実際に命令(if文など)は、テキスト領域にとられます。
mallocで確保したメモリはヒープ領域に取られます。
(但し、テキスト領域の言葉は正しいかどうか不明です。参考URLを参照下さい)
ところで、どうして、メモリをたくさん使うようなテストプログラムを作りたいのですか、よかったら教えて下さい。そのほうに興味があります。

参考URL:http://www1.cts.ne.jp/~clab/hsample/Point/Point1 …
    • good
    • 0
この回答へのお礼

大学の研究です。
Linuxの限界時のパフォーマンスをシミュレーションするつもりです。
詳しい解説&参考URLありがとうございました。
大変参考になりました。

お礼日時:2004/12/22 02:01

アセンブラで.text, .data, .bss等の各セクションにテーブルを配置させれば簡単にできると思いますが、


C,C++じゃないからだめですか?
    • good
    • 0
この回答へのお礼

すみません。
私、アセンブラは書けないんです。
でも、アドバイスありがとうございました。

お礼日時:2004/12/22 02:01

1つの例として、malloc関数を使用する方法があります。


mallocは、指定されたサイズ分のメモリをヒープ領域に確保します。mallocで指定するサイズ(=確保するメモリサイズ)を非常に大きな値にすれば、たくさんのメモリを消費するプログラムが作成できます。詳細は、man mallocで調べて下さい。
    • good
    • 0
この回答へのお礼

mallocを使うとヒープ領域がたくさん確保できるのですね。ありがとうございます。
テキスト領域を大量に確保するには、無駄に長いプログラムを書けばいいのでしょうか?
また、mallocした領域にデータを書き込むと、今度はデータ領域がたくさん使われるのでしょうか?

お礼日時:2004/12/21 00:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!