¿Hay una utilidad de línea de comandos dentro de Windows o un programa de terceros que pueda recuperar la RAM disponible en una máquina? (Dado que no creo que esto se pueda hacer en JAVA puro, ya que se ejecuta dentro de una máquina virtual, eso tiene memoria RAM asignada/asignada).¿Cómo recuperar la memoria RAM disponible desde la línea de comandos de Windows?
Respuesta
systeminfo
es un comando que la información del sistema, incluyendo la memoria disponible
upvoted es nativo; pero está localizado y redondea y agrega comas. 'Memoria física total: 3.794 MB' – n611x007
Hay un montón de herramientas útiles de bajo nivel de SysSnternals.
Y psinfo
puede ser el más útil.
I utilizaron los siguientes parámetros de PsInfo:
-h Show installed hotfixes.
-d Show disk volume information.
Resultado de muestra es la siguiente:
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
upvoted para una utilidad no localizada – n611x007
Use wmic computersystem get TotalPhysicalMemory
. Por ejemplo:
C:\>wmic computersystem get TotalPhysicalMemory
TotalPhysicalMemory
4294500352
En caso de que necesita esta funcionalidad en un programa Java, es posible que desee ver en la API sigar: http://www.hyperic.com/products/sigar
En realidad, esto no es una respuesta a la pregunta, lo sé, pero una pista para que no tengas que reinventar la rueda.
wmic OS get TotalVisibleMemorySize /Value
Nota no TotalPhysicalMemory
como se sugiere en otro lugar
Esto no dará el disponible RAM pero la RAM total. Para la RAM disponible, la respuesta de @Everardo es la correcta - 'wmic OS get FreePhysicalMemory/Value' –
¡Bien hecho, gracias! – noonand
@OrangeDog ¿Qué sistema operativo? Acabo de probar esto en Win7 x64 y Windows 10 x64, sigue siendo válido. – noonand
Esto no se puede hacer en Java puro. Pero puede ejecutar programas externos usando Java y obtener el resultado.
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;
}
}
Probar MemLog. Hace el trabajo perfecto y rápido.
Descargar a través de uno de los muchos espejos, p. este: SoftPedia page for MemLog.
(. MemLog's author has a web site Pero esto se debe algunas veces Wayback Machine instantáneas here..)
Ejemplo de salida:
C:\>memlog
2012/02/01,13:22:02,878956544,-1128333312,2136678400,2138578944,-17809408,2147352576
878956544
ser la memoria libre
wmic OS get FreePhysicalMemory /Value
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
Quizás sea mejor cambiar la cadena a simplemente "memoria". systeminfo | findstr "Memoria". Esto solo le devolverá cinco entradas, todas conectadas con la memoria – noonand
poco viejo, pero Yo quería saber algo similar. Simplemente añadiendo la solución me encontré con la OMI ya la mejor respuesta vino de Everardo w/memoria física
wmic OS get FreePhysicalMemory /Value
Esto me lleva a profundizar en wmic ... Tenga en cuenta memoria física libre es no el tipo a mirar.
wmic OS get FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles /VALUE
Esto devuelve algo así como ...
FreePhysicalMemory=2083440
FreeSpaceInPagingFiles=3636128
FreeVirtualMemory=842124
Aquí es una solución pura Java
realidad:
public static long getFreePhysicalMemory()
{
com.sun.management.OperatingSystemMXBean bean =
(com.sun.management.OperatingSystemMXBean)
java.lang.management.ManagementFactory.getOperatingSystemMXBean();
return bean.getFreePhysicalMemorySize();
}
Tenga en cuenta que esto es específico de la plataforma y puede no estar disponible en todas las plataformas de hardware/software. – Nick
@Nick: Pero generalmente funciona en 'Windows', por lo que ya es un buen comienzo – BullyWiiPlaza
sí, tienes razón, lo siento, debería haberlo indicado ya que la pregunta era específica de Windows. – Nick
- 1. Android compilación desde la línea de comandos en Windows
- 2. Cómo comprobar la cantidad de memoria RAM en I
- 3. Cómo arrancar desde la línea de comandos
- 4. Ejecutar Java desde la línea de comandos
- 5. ¿Cómo guardo los objetos en Java de forma eficiente utilizando la memoria RAM disponible?
- 6. ¿Cómo descargar Python desde la línea de comandos?
- 7. Obtenga la versión de TCL desde la línea de comandos?
- 8. Referencia rápida desde la línea de comandos
- 9. haciendo uso de toda la memoria RAM disponible en un programa Haskell?
- 10. ¿Cómo envío correos electrónicos desde la línea de comandos?
- 11. ¿Cómo comento en la línea de comandos de Windows?
- 12. Cómo pasar argumentos desde la línea de comandos a gradle
- 13. ¿Cómo cambiar el tamaño de RAM del emulador de Android desde la línea de comando?
- 14. Ejecute la transformación web.config desde la línea de comandos
- 15. Mercurial: "guess rename" de TortoiseHg desde la línea de comandos?
- 16. ¿Generar scripts del servidor SQL desde la línea de comandos?
- 17. ¿Cómo cambiar las credenciales de usuario del servicio de Windows desde la línea de comandos?
- 18. Exprés de IIS desde la línea de comandos
- 19. ¿Cómo se ejecuta un comando como administrador desde la línea de comandos de Windows?
- 20. ¿Cómo hacer una solicitud HTTP HEAD desde la línea de comandos de Windows?
- 21. ¿Cómo puedo crear una carpeta compartida desde la línea de comandos de Windows?
- 22. Cómo compilar un archivo .apk desde la línea de comandos de Windows?
- 23. Desde la línea de comandos, ¿cómo saber qué versión de Firefox está instalada en Windows/Linux?
- 24. ¿Cómo valido mi archivo YAML desde la línea de comandos?
- 25. Cómo ejecutar ffmpeg desde la línea de comandos en android
- 26. Cómo instalar paquetes desde la línea de comandos en Suse
- 27. ¿Cómo ejecutar Google Codepro Analytix desde la línea de comandos?
- 28. ¿Cómo se usa StyleCop desde la línea de comandos?
- 29. ¿Cómo usar jarjar desde la línea de comandos?
- 30. Cómo generar Javadoc desde la línea de comandos
Su título de la pregunta es un poco diferente del texto de la pregunta. ¿Prefieres recuperarlo en Java? – diggingforfire
@diggingforfire Si es posible, las sugerencias hasta ahora no son muy buenas – Mike
Su pregunta real "Cómo recuperar la memoria RAM disponible desde la línea de comandos de Windows" ya se ha respondido. Debería ser más claro, si su pregunta fue "Cómo recuperar la memoria RAM disponible de Windows en Java", entonces el título es engañoso. Pero incluso la respuesta a eso ya ha sido dada. Simplemente puede analizar el resultado del comando 'systeminfo'. – diggingforfire