web-dev-qa-db-fra.com

Comment récupérer disponible RAM à partir de la ligne de commande Windows?

Existe-t-il un utilitaire de ligne de commande dans Windows ou un programme tiers qui peut récupérer les RAM sur une machine? (Puisque je ne pense pas que cela puisse être fait en Java pur, car il est exécuté dans une machine virtuelle, qui a une mémoire RAM prédéfinie/allouée)?

29
Mike

systeminfo est une commande qui affichera les informations système, y compris la mémoire disponible

39
diggingforfire
wmic OS get FreePhysicalMemory /Value
30
Everardo

Utilisation wmic computersystem get TotalPhysicalMemory. Par exemple.:

C:\>wmic computersystem get TotalPhysicalMemory
TotalPhysicalMemory
4294500352
20
PA.

Il y a tout un tas d'outils utiles de bas niveau de SysSnternals .

Et psinfo peut être le plus utile.

J'ai utilisé les commutateurs psinfo suivants:

-h        Show installed hotfixes.
-d        Show disk volume information.

Voici un exemple de sortie:

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
9
Peter Lawrey
wmic OS get TotalVisibleMemorySize /Value

Notez pas TotalPhysicalMemory comme suggéré ailleurs

9
noonand

Un peu vieux mais je voulais en savoir de même. Je viens d'ajouter la solution que j'ai trouvée depuis IMO, la meilleure réponse est venue d'Everardo avec mémoire physique

wmic OS get FreePhysicalMemory /Value

Cela m'a amené à approfondir le wmic ... Gardez à l'esprit que la mémoire physique libre n'est pas du genre à regarder.

wmic OS get FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles /VALUE

Cela renvoie quelque chose comme ...

FreePhysicalMemory=2083440
FreeSpaceInPagingFiles=3636128
FreeVirtualMemory=842124
5
Jason Brennecke
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
4
Joshua Love

Essayez MemLog. Il fait le travail parfaitement et rapidement.

Téléchargez via l'un des nombreux miroirs, par ex. celui-ci: page SoftPedia pour MemLog .
( l'auteur de MemLog a un site Web . Mais cela est parfois en panne. Instantané de la machine Wayback ici .)

Exemple de sortie:

C:\>memlog
2012/02/01,13:22:02,878956544,-1128333312,2136678400,2138578944,-17809408,2147352576

878956544 étant la mémoire libre

1
Mike

Cela ne peut pas être fait en Java pur. Mais vous pouvez exécuter des programmes externes en utilisant Java et obtenir le résultat.

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;
    }
}
1
Arshed

Voici une pure solution Java :

public static long getFreePhysicalMemory()
{
    com.Sun.management.OperatingSystemMXBean bean =
            (com.Sun.management.OperatingSystemMXBean)
                    Java.lang.management.ManagementFactory.getOperatingSystemMXBean();
    return bean.getFreePhysicalMemorySize();
}
0
BullyWiiPlaza

Juste au cas où vous auriez besoin de cette fonctionnalité dans un programme Java, vous voudrez peut-être regarder l'API sigar: http://www.hyperic.com/products/sigar =

En fait, ce n'est pas une réponse à la question, je sais, mais un indice pour que vous n'ayez pas à réinventer la roue.

0
skomp