[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:22026] Re: 物理メモリサイズを取得する方法を教えて下さい
-
From:H.Shiozaki
-
Date:Sat, 14 Feb 2004 19:35:20 +0900 (JST)
- Subject: [plamo:22026] Re: 物理メモリサイズを取得する方法を教えて下さい
- From: H.Shiozaki <sios_hs@xxxxxxxxx>
- Date: Sat, 14 Feb 2004 19:35:51 +0900
汐崎です。
岩佐様,田原様 有難うございます。
私のPCでは,
cat /proc/memoinfo は以下のようです。
total: used: free: shared: buffers: cached:
Mem: 63258624 55939072 7,319,552 0 1802240 19972096
Swap: 131567616 13066240 118501376
MemTotal: 61776 kB
MemFree: 7148 kB
MemShared: 0 kB
Buffers: 1760 kB
Cached: 13772 kB
SwapCached: 5732 kB
Active: 29112 kB
Inactive: 20336 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 61776 kB
LowFree: 7148 kB
SwapTotal: 128484 kB
SwapFree: 115724 kB
それと,後述の,sys_info.c の結果が以下の様になりました。
sysinfo(): return error code=0
Uptime = 2979[s]
Load: 1 min 800 / 5 min 3520 / 15 min 3648
RAM: total 63,258,624 / free 7,331,840 / shared 0
Memory in buffers = 1802240
Swap: total 131567616 / free 118501376
Number of processes = 68
----
以上から,/proc/memoinfoの<free>のメモリサイズと
sys_infoのRAM: free とLowFree が大体同じ結果になりましたので,
この値を,MB単位に切り,その50%程度を目安に
使用すしてみます。
このPCでは,3.5MBです。
> 個人的な意見ですが、
>
> 安全、って、何なんでしょう?
> どうして、それが安全なんでしょう?
は,答えに窮します。
岩佐様,田原様 有難うございました。
----
以下は sys_info.c です。
=========
/* sys-info.c
refrence : man sysinfo, man 2 intro
*/
#include <stdio.h>
#include <sys/sysinfo.h>
#include <linux/unistd.h> /* for _syscallX macros/related stuff */
#include <linux/kernel.h> /* for struct sysinfo */
int main(int argc, char **argv)
{
int error;
struct sysinfo mypc_sysinfo;
error = sysinfo(&mypc_sysinfo);
printf("\n\n sysinfo(): return error code=%d\n", error);
printf("Uptime = %ld[s] \nLoad: 1 min %lu / 5 min %lu / 15 min %
lu\n"
"RAM: total %lu / free %lu / shared %lu\n"
"Memory in buffers(used) = %lu\nSwap: total %lu /
free %lu\n"
"Number of processes = %d\n",
mypc_sysinfo.uptime, mypc_sysinfo.loads[0],
mypc_sysinfo.loads[1], mypc_sysinfo.loads[2],
mypc_sysinfo.totalram, mypc_sysinfo.freeram,
mypc_sysinfo.sharedram, mypc_sysinfo.bufferram,
mypc_sysinfo.totalswap, mypc_sysinfo.freeswap,
mypc_sysinfo.procs);
printf("\n");
return(0);
}
#ifdef __INFO__
from man sysinfo
struct sysinfo {
long uptime; /* Seconds since boot */
unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
unsigned long totalram; /* Total usable main memory size */
unsigned long freeram; /* Available memory size */
unsigned long sharedram; /* Amount of shared memory */
unsigned long bufferram; /* Memory used by buffers */
unsigned long totalswap; /* Total swap space size */
unsigned long freeswap; /* swap space still available */
unsigned short procs; /* Number of current processes */
char _f[22]; /* Pads structure to 64 bytes */
};
#endif
- - -
汐崎:H.Shiozaki
E-Mail: sios_hs(at)ybb.ne.jp
URL: http://www.geocities.jp/sios_hp/
note: (at)部分を'@'に読替えてください。
- References
-
- [plamo:22016] Re: 物理メモリサイズを取得する方法を教えて下さい, Iwasa Dai
[検索ページ]
[メール一覧]
Plamo ML 公開システム