メモリ容量を測定する
|
64 |
GetMemory |
動作確認 |
Delphi2007 |
更新日 |
2008/01/31(木) |
コンピュータに搭載されているメモリ容量の情報を取得します。
────────────────────
procedure TForm1.Button1Click(Sender: TObject);
//数値を3桁区切りの文字列に変換する
function FormatTreeComma(Value: Extended): String;
begin
Result := Format('%.0n', [Value]);
end; //小数点以下は表示しない桁指定
var
MemoryStatus: TMemoryStatus;
begin
MemoryStatus.dwLength := SizeOf(TMemoryStatus);
GlobalMemoryStatus(MemoryStatus);
with MemoryStatus, Memo1.Lines do
begin
Add('使用中のメモリの割合:'+#9+ FormatTreeComma(dwMemoryLoad));
Add('物理メモリのバイト数:'+#9+ FormatTreeComma(dwTotalPhys));
Add('空き物理メモリのバイト数:'+#9+ FormatTreeComma(dwAvailPhys));
Add('ページングファイルのバイト数:'+#9+ FormatTreeComma(dwTotalPageFile));
Add('ページングファイルの空きバイト数:'+#9+FormatTreeComma(dwAvailPageFile));
Add('アドレス空間のユーザーバイト数:'+#9+ FormatTreeComma(dwTotalVirtual));
Add('空きユーザーバイト数:'+#9+ FormatTreeComma(dwAvailVirtual));
end;
end;
────────────────────
出力結果は以下のようになります。
昔のPC
使用中のメモリの割合: 87
物理メモリのバイト数: 100,192,256
空き物理メモリのバイト数: 12,742,656
ページングファイルのバイト数: 1,134,571,520
ページングファイルの空きバイト数: 980,914,176
アドレス空間のユーザーバイト数: 2,147,352,576
空きユーザーバイト数: 2,118,160,384
今のPC
使用中のメモリの割合: 71
物理メモリのバイト数: 1,072,087,040
空き物理メモリのバイト数: 308,809,728
ページングファイルのバイト数: 2,555,219,968
ページングファイルの空きバイト数: 1,823,838,208
アドレス空間のユーザーバイト数: 2,147,352,576
空きユーザーバイト数: 2,105,761,792
三桁区切りで表示してみました。
unit Windows; の宣言によると
_MEMORYSTATUS = record
dwLength: DWORD;
dwMemoryLoad: DWORD;
dwTotalPhys: DWORD;
dwAvailPhys: DWORD;
dwTotalPageFile: DWORD;
dwAvailPageFile: DWORD;
dwTotalVirtual: DWORD;
dwAvailVirtual: DWORD;
end;
TMemoryStatus = _MEMORYSTATUS;
なので、値は
DWORD = Longword 0..4294967295 符号なし 32 ビット
で取得されています。
|