[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:21936] Re: 物理メモリサイズを取得する方法を教えて下さい



児玉 です.

From: H.Shiozaki <sios_hs@ybb.ne.jp>
Subject: [plamo:21933] 物理メモリサイズを取得する方法を教えて下さい
Date: Thu, 05 Feb 2004 01:21:40 +0900

> 汐崎と申します。(長文失礼)
> 下記の様なプログラムで,PCに実装されているRAMの内,
> ユーザプログラムから使えるサイズを取得したいのですが,
> どうも,RAM領域を越えてしまいます。

/proc/sys/vm/overcommit_memory に1を書き込むと overcommit動作をする.
つまり, 名目だけ割り当てて成行きに任せちゃう.
なので, そういう状況まで含めると,
 malloc では実メモリの量はわからないのじゃないかと....
(つまり, 汎用性が無い)
# いや, やっては居ないからわからないけど.

> int check_ram_size(int n, int v)
> {
>   char *p;
>   int  i, f, g;
>   f=g=0;
>   for(i=1; i<=n; i++){
>     g=0;
>     p = (char *) malloc(1048576 * i);
>     //p = (char *) calloc(i, 1048576); 
>     /* very slow: high cost in FreeBSD */
>     if(p) { g=1; free(p); } 
>     if(p==NULL) {f=1; break;}
>     if(v)printf("\n**chk_ram_size: malloc successed at size %3d[MB]", 
> i);
>   }
>   if(v && f)printf("\n**chk_ram_size: malloc failed at %3d[MB]", i);
>   //if(p)free(p);
>   return(i-1);
> }
-- 
Kouji KODAMA, kdm@kobe-kosen.ac.jp

References
[plamo:21933] 物理メモリサイズを取得する方法を教えて下さい, H.Shiozaki

[検索ページ] [メール一覧]
Plamo ML 公開システム