2012-02-01 18 views
20

Czy istnieje narzędzie wiersza poleceń w systemie Windows lub programie innej firmy, które może pobrać dostępną pamięć RAM na komputerze? (Ponieważ nie wierzę, że można to zrobić w czystej JAVA, ponieważ jest uruchamiana w maszynie wirtualnej, która ma wstępnie ustawioną/przydzieloną pamięć RAM)?Jak odzyskać dostępną pamięć RAM z wiersza poleceń systemu Windows?

+1

Twój tytuł pytanie jest nieco różni się od tekstu zapytania. Czy wolisz odzyskać go w Javie? – diggingforfire

+0

@diggingforfire Jeśli to możliwe, sugestie do tej pory nie są zbyt dobre – Mike

+0

Twoje aktualne pytanie "Jak odzyskać dostępną pamięć RAM z wiersza poleceń systemu Windows" zostało już odebrane. Powinieneś być bardziej przejrzysty, jeśli twoje pytanie miało być "Jak odzyskać dostępną pamięć RAM z Windows w java", to tytuł jest mylący. Ale nawet odpowiedź na to pytanie została już udzielona. Możesz po prostu przeanalizować wynik polecenia "systeminfo". – diggingforfire

Odpowiedz

31

systeminfo jest polecenie, które będą informacje o systemie produkcji, w tym dostępnej pamięci

+0

przejął wersję macierzystą; ale jest zlokalizowane i runduje i dodaje przecinki. "Całkowita pamięć fizyczna: 3,794 MB" – n611x007

7

Jest cała masa przydatnych narzędzi niskopoziomowych z SysSnternals.

I może być najbardziej przydatny.

I stosuje się następujące parametry: psinfo

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

wyjściowe próbki jest następujący:

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 
+1

przegłosowana dla nielokalnego narzędzia – n611x007

17

Użyj wmic computersystem get TotalPhysicalMemory. Np:

C:\>wmic computersystem get TotalPhysicalMemory 
TotalPhysicalMemory 
4294500352 
+0

Przepraszamy, miałem na myśli wolną pamięć, a nie całkowitą pamięć – Mike

+0

przegłosowaną dla pojedynczego wyjścia liczbowego z nagłówkiem - 'TotalPhysicalMemory \ n1234567890' – n611x007

0

Na wszelki wypadek trzeba tę funkcję w programie Java, warto spojrzeć na API sigar: http://www.hyperic.com/products/sigar

Właściwie, to nie jest odpowiedź na pytanie, wiem, ale podpowiedź, więc nie musisz wymyślać koła.

8
wmic OS get TotalVisibleMemorySize /Value 

Uwaga nie TotalPhysicalMemory jak sugeruje innym

+0

To nie zapewni dostępnej pamięci RAM, ale całkowita pamięć RAM. Dla dostępnej pamięci RAM odpowiedź @Everardo jest poprawna - 'wmic OS get FreePhysicalMemory/Value' –

+0

Dobra, dzięki! – noonand

+0

@OrangeDog Jaki system operacyjny? Po prostu wypróbowałem to na Win7 x64 i Windows 10 x64 - nadal jest poprawne. – noonand

1

ta nie może być wykonana w czystej Javie. Ale możesz uruchamiać zewnętrzne programy używając Java i uzyskać wynik.

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

Wypróbuj MemLog. Wykonuje pracę doskonale i szybko.

Pobierz za pomocą jednego z wielu serwerów lustrzanych, np. ten: SoftPedia page for MemLog.
(. MemLog's author has a web site Ale to jest w dół kilka razy Wayback Maszyna migawkowe here..)

Przykâadowa:

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

878956544 jest wolna pamięć

2
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 
+0

Być może lepiej zmienić ciąg znaków na "vizę" pamięci. systeminfo | findstr "Pamięć". Otrzymasz tylko pięć wpisów, wszystkie połączone z pamięcią – noonand

3

nieco stary, ale Chciałem wiedzieć podobnie. Wystarczy dodanie roztworu natknąłem od IMO najlepsza odpowiedź przyszła od Everardo w/pamięci fizycznej

wmic OS get FreePhysicalMemory /Value

to doprowadzić mnie spojrzeć głębiej WMIC ... Pamiętaj Wolnej pamięci fizycznej jest nie typ, na który należy patrzeć.

wmic OS get FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles /VALUE

ta zwraca coś takiego ...

FreePhysicalMemory=2083440 
FreeSpaceInPagingFiles=3636128 
FreeVirtualMemory=842124 
0

Oto czysta Java rozwiązanie rzeczywiście:

public static long getFreePhysicalMemory() 
{ 
    com.sun.management.OperatingSystemMXBean bean = 
      (com.sun.management.OperatingSystemMXBean) 
        java.lang.management.ManagementFactory.getOperatingSystemMXBean(); 
    return bean.getFreePhysicalMemorySize(); 
} 
+0

Uwaga: jest to zależne od platformy i może nie być dostępne na wszystkich platformach sprzętowych/programowych. – Nick

+0

@Nick: Ale na ogół działa na 'Windowsie ', więc jest to już dobry start. – BullyWiiPlaza

+0

Tak, masz rację, przepraszam, powinienem był to wskazać, ponieważ pytanie dotyczyło Windows. – Nick

Powiązane problemy