使用可能なRAMをマシン上で取得できるコマンドラインユーティリティがWindowsまたはサードパーティプログラム内にありますか?(実行されているため、これはPure Javaで実行できるとは思わないので仮想マシン内で、事前設定/割り当てられたRAMがありますか?)
systeminfo
は、使用可能なメモリを含むシステム情報を出力するコマンドです
wmic OS get FreePhysicalMemory /Value
つかいます wmic computersystem get TotalPhysicalMemory
。例えば。:
C:\>wmic computersystem get TotalPhysicalMemory
TotalPhysicalMemory
4294500352
SysSnternals から有用な低レベルのツールがたくさんあります。
そして、 psinfo
が最も有用かもしれません。
次のpsinfoスイッチを使用しました。
-h Show installed hotfixes.
-d Show disk volume information.
サンプル出力は次のとおりです。
c:> psinfo \\development -h -d
PsInfo v1.6 - local and remote system information viewer
Copyright (C) 2001-2004 Mark Russinovich
Sysinternals - www.sysinternals.com
System information for \\DEVELOPMENT:
Uptime: 28 days, 0 hours, 15 minutes, 12 seconds
Kernel version: Microsoft Windows XP, Multiprocessor Free
Product type Professional
Product version: 5.1
Service pack: 0
Kernel build number: 2600
Registered organization: Sysinternals
Registered owner: Mark Russinovich
Install date: 1/2/2002, 5:29:21 PM
Activation status: Activated
IE version: 6.0000
System root: C:\WINDOWS
Processors: 2
Processor speed: 1.0 GHz
Processor type: Intel Pentium III
Physical memory: 1024 MB
Volume Type Format Label Size Free Free
A: Removable 0%
C: Fixed NTFS WINXP 7.8 GB 1.3 GB 16%
D: Fixed NTFS DEV 10.7 GB 809.7 MB 7%
E: Fixed NTFS SRC 4.5 GB 1.8 GB 41%
F: Fixed NTFS MSDN 2.4 GB 587.5 MB 24%
G: Fixed NTFS GAMES 8.0 GB 1.0 GB 13%
H: CD-ROM CDFS JEDIOUTCAST 633.6 MB 0%
I: CD-ROM 0% Q: Remote 0%
T: Fixed NTFS Test 502.0 MB 496.7 MB 99%
OS Hot Fix Installed
Q147222 1/2/2002
Q309521 1/4/2002
Q311889 1/4/2002
Q313484 1/4/2002
Q314147 3/6/2002
Q314862 3/13/2002
Q315000 1/8/2002
Q315403 3/13/2002
Q317277 3/20/2002
wmic OS get TotalVisibleMemorySize /Value
他で提案されているTotalPhysicalMemory
ではないことに注意してください
少し古いですが、私は同様に知りたいと思いました。 IMOから出会った解決策を追加するだけで、Everardo w/Physical Memoryから最良の答えが得られました。
wmic OS get FreePhysicalMemory /Value
これにより、wmicをより深く見るようになります... Free Physical Memoryは見るべきタイプではないことに留意してください。
wmic OS get FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles /VALUE
これは次のようなものを返します...
FreePhysicalMemory=2083440
FreeSpaceInPagingFiles=3636128
FreeVirtualMemory=842124
PS C:\Users\Rack> systeminfo | findstr "System Memory"
System Boot Time: 5/5/2016, 11:10:41 PM
System Manufacturer: VMware, Inc.
System Model: VMware Virtual Platform
System Type: x64-based PC
System Directory: C:\Windows\system32
System Locale: en-us;English (United States)
Total Physical Memory: 40,959 MB
Available Physical Memory: 36,311 MB
Virtual Memory: Max Size: 45,054 MB
Virtual Memory: Available: 41,390 MB
Virtual Memory: In Use: 3,664 MB
MemLogをお試しください。それは完璧かつ迅速に仕事をします。
多くのミラーの1つを介してダウンロードします。これ: MemLogのSoftPediaページ 。
( MemLogの作成者はWebサイトを持っています 。しかし、これは時々ダウンしています。ウェイバックマシンのスナップショット here 。)
出力例:
C:\>memlog
2012/02/01,13:22:02,878956544,-1128333312,2136678400,2138578944,-17809408,2147352576
878956544
空きメモリ
これは、純粋なJavaでは実行できません。ただし、Javaを使用して外部プログラムを実行し、結果を取得できます。
Process p=Runtime.getRuntime().exec("systeminfo");
Scanner scan=new Scanner(p.getInputStream());
while(scan.hasNext()){
String temp=scan.nextLine();
if(temp.equals("Available Physical Memmory")){
System.out.println("RAM :"temp.split(":")[1]);
break;
}
}
これが実際の純粋な Java
解です:
public static long getFreePhysicalMemory()
{
com.Sun.management.OperatingSystemMXBean bean =
(com.Sun.management.OperatingSystemMXBean)
Java.lang.management.ManagementFactory.getOperatingSystemMXBean();
return bean.getFreePhysicalMemorySize();
}
Javaプログラムでこの機能が必要な場合は、sigar APIをご覧ください。 http://www.hyperic.com/products/sigar =
実際、これは質問に対する答えではありませんが、車輪を再発明する必要がないようにヒントを提供します。