A. 什麼叫物理內存怎麼知道自己電腦上的物理內存是多少
一、物理內存(Physical memory)是相對於虛擬內存而言的。物理內存指通過物理內存條而獲得的內存空間,常見的物理內存規格有256M、512M、1G、2G等,現如今隨著計算機硬體的發展,已經出現4G、8G甚至更高容量的內存規格。
二、查看電腦物理內存
1、右擊「計算機」,選擇「屬性」
內存在計算機中的作用很大,電腦中所有運行的程序都需要經過內存來執行,如果執行的程序很大或很多,就會導致內存消耗殆盡。為了解決這個問題,Windows中運用了虛擬內存技術,即拿出一部分硬碟空間來充當內存使用,當內存佔用完時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。
B. 怎樣看電腦的物理內存,是在我的電腦中的C盤中查看嗎
不知道你說的是否是虛擬內存,如果你說的就是物理內存數據是否正常,物理內存的硬體就是插在主板上的「內存條」,清潔好它應該沒有問題出現。物理內存就是按我的電腦,屬性,你內存是多少物理內存就是多少了。至於虛擬內存,意思是把硬碟多餘的空間劃出來暫時當作內存使用。按我的電腦,屬性,有高級這一選項的,第一個性能,設置,第二欄高級,虛擬內存就最在底部。一般來說它有一個推薦值,你就在最小值那欄設定為推薦值,你可能會有一個疑問,那我不可以把幾G硬碟容量劃成內存使用嗎?是不能的,它是有一個限定的,一個盤最多隻能劃4G容量來使用,但是並不是越大越好,因為1G的硬碟容量只是相當於幾十M的內存而已,而且一般是推薦值就行了,多了也沒用的,那最大值就設定成為最小值大概1.5倍,這樣就比較合理了。
你可以參考網路中的「物理內存」。
C. 如何獲取到實際物理內存
可以直接讀取物理內存的。參見這個帖子http://blogger.org.cn/dispbbs.asp?Boardid=61&ID=87295。
這個叫AWE分配內存,可以突破4G定址。你看完就知道為什麼能使用到程序分配內存外的物理內存了
D. 電腦物理內存怎麼看
內存是電腦的基本組件之一,電腦內存的大小在很大程度上影響了我們的電腦運行速度。那麼怎麼看電腦內存大小呢?而在購買新的擴展內存時,我們又該怎麼看電腦內存型號來匹配合適的新內存呢?下面小編就為您介紹內存條型號查看方法。
電腦內存怎麼看?
1.在桌面上按下「Win+R」打開運行窗口。
2.輸入「dxdiag」,按下回車鍵。
3.在彈出的窗口中即可看到內存。
怎麼看電腦內存條型號
很多時候,我們可以通過右鍵點擊我的電腦-屬性,在下方看到電腦頻率及內存大小的信息。然而,這個信息只包含大小,而且在購買新電腦或二手電筒腦時常常被不法商販篡改,這使得使用具有內存查看功能的軟體來查看電腦內存變得很有必要。而在升級內存時,我們往往需要更為詳細的信息來了解主板支持的內存,甚至較老的主板還要使用兩條完全相同的內存來保證兼容性或組建雙通道。
那麼,怎麼看電腦 內存條 大小及型號等信息呢?
金山衛士的硬體檢測功能可以幫助您查看電腦內存的詳細信息,解決電腦內存怎麼看的問題。
安裝金山衛士後,我們打開「重裝系統」功能組件。點擊下方的「硬體檢測」按鈕,進入金山裝機精靈的硬體檢測功能。
點擊左側的內存選項卡,即可看到內存的詳細信息,包括名稱、廠商、大小、類型等等。根據這些信息,我們就可以對內存有一個較為全面的了解,從而解決電腦內存怎麼看的問題,確定電腦是否需要升級內存,該升級什麼類型的內存。
另外,在「硬體檢測」功能中還帶有「性能測試」功能,進入後可以對包括內存性能在內的電腦綜合性能進行測試。
當然,如果這些信息還是不能滿足您的要求,就要使用專門的內存檢測工具。主要有Memtest,MemScan等等。專業的硬體檢測軟體Everest也是很不錯的選擇。
當然,金山衛士的硬體檢測功能還可以為我們提供更多硬體的詳細信息,可以滿足大多數用戶的需求。我們可以用金山衛士實現許多平時需要的功能,大家也可以在使用金山衛士的過程中去發掘,相信一定會有意外的收獲。
E. 怎麼讀出內存條里的數據
足輕重的作用。內存一般採用半導體存儲單元,包括隨機存儲器(RAM),只讀存儲器(ROM),以及高速緩存(CACHE)。只不過因為RAM是其中最重要的存儲器。
通常所說的內存即指電腦系統中的RAM。RAM要求每時每刻都不斷地供電,否則數據會丟失。
如果在關閉電源以後RAM中的數據也不丟失就好了,這樣就可以在每一次開機時都保證電腦處於上一次關機的狀態,而不必每次都重新啟動電腦,重新打開應用程序了。但是RAM要求不斷的電源供應,那有沒有辦法解決這個問題呢?隨著技術的進步,人們想到了一個辦法,即給RAM供應少量的電源保持RAM的數據不丟失,這就是電腦的休眠功能,特別在Win2000里這個功能得到了很好的應用,休眠時電源處於連接狀態,但是耗費少量的電能。
按內存條的介面形式,常見內存條有兩種:單列直插內存條(SIMM),和雙列直插內存條(DIMM)。SIMM內存條分為30線,72線兩種。DIMM內存條與SIMM內存條相比引腳增加到168線。DIMM可單條使用,不同容量可混合使用,SIMM必須成對使用。
按內存的工作方式,內存又有FPA EDO DRAM和SDRAM(同步動態RAM)等形式。
FPA(FAST PAGE MODE)RAM 快速頁面模式隨機存取存儲器:這是較早的電腦系統普通使用的內存,它每個三個時鍾脈沖周期傳送一次數據。
EDO(EXTENDED DATA OUT)RAM 擴展數據輸出隨機存取存儲器:EDO內存取消了主板與內存兩個存儲周期之間的時間間隔,他每個兩個時鍾脈沖周期輸出一次數據,大大地縮短了存取時間,是存儲速度提高30%。EDO一般是72腳,EDO內存已經被SDRAM所取代。
S(SYSNECRONOUS)DRAM 同步動態隨機存取存儲器:SDRAM為168腳,這是目前PENTIUM及以上機型使用的內存。SDRAM將CPU與RAM通過一個相同的時鍾鎖在一起,使CPU和RAM能夠共享一個時鍾周期,以相同的速度同步工作,每一個時鍾脈沖的上升沿便開始傳遞數據,速度比EDO內存提高50%。
DDR(DOUBLE DATA RAGE)RAM :SDRAM的更新換代產品,他允許在時鍾脈沖的上升沿和下降沿傳輸數據,這樣不需要提高時鍾的頻率就能加倍提高SDRAM的速度。
RDRAM(RAMBUS DRAM) 存儲器匯流排式動態隨機存取存儲器;RDRAM是RAMBUS公司開發的具有系統帶寬,晶元到晶元介面設計的新型DRAM,他能在很高的頻率范圍內通過一個簡單的匯流排傳輸數據。他同時使用低電壓信號,在高速同步時鍾脈沖的兩邊沿傳輸數據。INTEL將在其820晶元組產品中加入對RDRAM的支持。
內存的參數主要有兩個:存儲容量和存取時間。存儲容量越大,電腦能記憶的信息越多。存取時間則以納秒(NS)為單位來計算。一納秒等於10^9秒。數字越小,表明內存的存取速度越快。
硬碟與內存的區別是很大的,這里只談最主要的三點:一、內存是計算機的工作場所,硬碟用來存放暫時不用的信息。二、內存是半導體材料製作,硬碟是磁性材料製作。三、內存中的信息會隨掉電而丟失,硬碟中的信息可以長久保存。
內存與硬碟的聯系也非常密切:這里只提一點:硬碟上的信息永遠是暫時不用的,要用嗎?請裝入內存!CPU與硬碟不發生直接的數據交換,CPU只是通過控制信號指揮硬碟工作,硬碟上的信息只有在裝入內存後才能被處理。
參考資料:
內存就是存儲程序以及數據的地方,比如當我們在使用WPS處理文稿時,當你在鍵盤上敲入字元時,它就被存入內存中,當你選擇存檔時,內存中的數據才會被存入硬(磁)盤。在進一步理解它之前,還應認識一下它的物理概念。
●只讀存儲器(ROM)
ROM表示只讀存儲器(Read Only Memory),在製造ROM的時候,信息(數據或程序)就被存入並永久保存。這些信息只能讀出,一般不能寫入,即使機器掉電,這些數據也不會丟失。ROM一般用於存放計算機的基本程序和數據,如BIOS ROM。其物理外形一般是雙列直插式(DIP)的集成塊。
●隨機存儲器(RAM)
隨機存儲器(Random Access Memory)表示既可以從中讀取數據,也可以寫入數據。當機器電源關閉時,存於其中的數據就會丟失。我們通常購買或升級的內存條就是用作電腦的內存,內存條(SIMM)就是將RAM集成塊集中在一起的一小塊電路板,它插在計算機中的內存插槽上,以減少RAM集成塊佔用的空間。目前市場上常見的內存條有4M/條、8M/條、16M/條等。
●高速緩沖存儲器(Cache)
Cache也是我們經常遇到的概念,它位於CPU與內存之間,是一個讀寫速度比內存更快的存儲器。當CPU向內存中寫入或讀出數據時,這個數據也被存儲進高速緩沖存儲器中。當CPU再次需要這些數據時,CPU就從高速緩沖存儲器讀取數據,而不是訪問較慢的內存,當然,如需要的數據在Cache中沒有,CPU會再去讀取內存中的數據。
內存儲器的劃分可歸納如下:
●基本內存 占據0~640KB地址空間。
●保留內存 占據640KB~1024KB地址空間。分配給顯示緩沖存儲器、各適配卡上的ROM和系統ROM BIOS,剩餘空間可作上位內存UMB。UMB的物理存儲器取自物理擴展存儲器。此范圍的物理RAM可作為Shadow RAM使用。
●上位內存(UMB) 利用保留內存中未分配使用的地址空間建立,其物理存儲器由物理擴展存儲器取得。UMB由EMS管理,其大小可由EMS驅動程序設定。
●高端內存(HMA) 擴展內存中的第一個64KB區域(1024KB~1088KB)。由HIMEM.SYS建立和管理。
●XMS內存 符合XMS規范管理的擴展內存區。其驅動程序為HIMEM.SYS。
●EMS內存 符合EMS規范管理的擴充內存區。其驅動程序為EMM386.EXE等。
內存在計算機中所扮演的角色
在計算機業界,內存這個名詞被廣泛用來稱呼 RAM( 隨機存取內存 ) 計算機使用隨機存取內存來儲存執行作業所須的暫時指令以及數據以使計算機的 CPU( 中央處理器 ) 能夠更快速讀取儲存在內存的指令及數據。
舉例來說,當處理器載入一個應用程序 - 例如文字處理或頁面編輯程序 - 到內存使應用程序能以最快速及最高效率的方式執行。以實用價值而言,將程序載入內存能夠確保計算機能以更短的時間來執行作業而使工作能夠更迅速地完成。
內存與儲存的差別
大多數人常將內存 (Memory) 與儲存空間 (Storage) 兩個名字混為一談 , 尤其是在談到兩者的容量的時候 內存是指 (Memory) 計算機中所安裝的隨機存取內存的容量而儲存 (Storage) 是指計算機內硬碟的容量 為了避免混淆 , 我們將計算機比喻為一個有辦公桌與檔案櫃的辦公室。
想像一下這個辦公桌與檔案櫃的比喻。想像每次想要閱讀一份文件或數據夾都必須從檔案櫃中找尋的情形,這會大幅減低工作執行的速度 , 更別說會把人逼瘋了。如果有足夠的辦公桌空間 ( 如內存 ), 便能夠將所需要的檔攤開 , 並能立即一眼就能找出所需的信息。
另一個內存與儲存最重要的差別在於 : 儲存於硬碟中的信息在關機後能夠保持完整,但任何儲存在內存中的數據在計算機關機後便會全部流失。就像在辦公室的比喻中 , 任何在下班時間後被遺留在桌上的檔或檔案都會全部被丟棄一樣。
內存與效能表現 (Memory and Performance)
增加計算機系統中的內存能夠增加計算機的效能表現是眾所皆知的。如果內存沒有足夠的空間 , 計算機就必須建立一個虛擬內存檔案。在這個過程中 , 中央處理器在硬碟中保留一個空間來代替額外的隨機存取內存 這個稱為 " Swapping" 的程序減低系統的速度 一般的計算機從內存存取大約需要 200ns( 奈秒 ), 但從硬碟存取則需12,000,000ns 具體來說就等於花四個半月的時間來完成三分半中就能完成的工作 !
F. 怎樣用Java獲取內存中的數據
方法如下:
首先
創建一個Bean用來存貯要得到的信
public class MonitorInfoBean {
/** 可使用內存. */
private long totalMemory;
/** 剩餘內存. */
private long freeMemory;
/** 最大可使用內存. */
private long maxMemory;
/** 操作系統. */
private String osName;
/** 總的物理內存. */
private long totalMemorySize;
/** 剩餘的物理內存. */
private long freePhysicalMemorySize;
/** 已使用的物理內存. */
private long usedMemory;
/** 線程總數. */
private int totalThread;
/** cpu使用率. */
private double cpuRatio;
public long getFreeMemory() {
return freeMemory;
}
public void setFreeMemory(long freeMemory) {
this.freeMemory = freeMemory;
}
public long getFreePhysicalMemorySize() {
return freePhysicalMemorySize;
}
public void setFreePhysicalMemorySize(long freePhysicalMemorySize) {
this.freePhysicalMemorySize = freePhysicalMemorySize;
}
public long getMaxMemory() {
return maxMemory;
}
public void setMaxMemory(long maxMemory) {
this.maxMemory = maxMemory;
}
public String getOsName() {
return osName;
}
public void setOsName(String osName) {
this.osName = osName;
}
public long getTotalMemory() {
return totalMemory;
}
public void setTotalMemory(long totalMemory) {
this.totalMemory = totalMemory;
}
public long getTotalMemorySize() {
return totalMemorySize;
}
public void setTotalMemorySize(long totalMemorySize) {
this.totalMemorySize = totalMemorySize;
}
public int getTotalThread() {
return totalThread;
}
public void setTotalThread(int totalThread) {
this.totalThread = totalThread;
}
public long getUsedMemory() {
return usedMemory;
}
public void setUsedMemory(long usedMemory) {
this.usedMemory = usedMemory;
}
public double getCpuRatio() {
return cpuRatio;
}
public void setCpuRatio(double cpuRatio) {
this.cpuRatio = cpuRatio;
}
}
之後,建立bean的介面
public interface IMonitorService {
public MonitorInfoBean getMonitorInfoBean() throws Exception;
}
然後,就是最關鍵的,得到cpu的利用率,已用內存,可用內存,最大內存等信息。
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import sun.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;
import java.io.*;
import java.util.StringTokenizer;
/**
* 獲取系統信息的業務邏輯實現類.
* @author GuoHuang
*/
public class MonitorServiceImpl implements IMonitorService {
private static final int CPUTIME = 30;
private static final int PERCENT = 100;
private static final int FAULTLENGTH = 10;
private static final File versionFile = new File("/proc/version");
private static String linuxVersion = null;
/**
* 獲得當前的監控對象.
* @return 返回構造好的監控對象
* @throws Exception
* @author GuoHuang
*/
public MonitorInfoBean getMonitorInfoBean() throws Exception {
int kb = 1024;
// 可使用內存
long totalMemory = Runtime.getRuntime().totalMemory() / kb;
// 剩餘內存
long freeMemory = Runtime.getRuntime().freeMemory() / kb;
// 最大可使用內存
long maxMemory = Runtime.getRuntime().maxMemory() / kb;
OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory
.getOperatingSystemMXBean();
// 操作系統
String osName = System.getProperty("os.name");
// 總的物理內存
long totalMemorySize = osmxb.getTotalPhysicalMemorySize() / kb;
// 剩餘的物理內存
long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize() / kb;
// 已使用的物理內存
long usedMemory = (osmxb.getTotalPhysicalMemorySize() - osmxb
.getFreePhysicalMemorySize())
/ kb;
// 獲得線程總數
ThreadGroup parentThread;
for (parentThread = Thread.currentThread().getThreadGroup(); parentThread
.getParent() != null; parentThread = parentThread.getParent())
;
int totalThread = parentThread.activeCount();
double cpuRatio = 0;
if (osName.toLowerCase().startsWith("windows")) {
cpuRatio = this.getCpuRatioForWindows();
}
else {
cpuRatio = this.getCpuRateForLinux();
}
// 構造返回對象
MonitorInfoBean infoBean = new MonitorInfoBean();
infoBean.setFreeMemory(freeMemory);
infoBean.setFreePhysicalMemorySize(freePhysicalMemorySize);
infoBean.setMaxMemory(maxMemory);
infoBean.setOsName(osName);
infoBean.setTotalMemory(totalMemory);
infoBean.setTotalMemorySize(totalMemorySize);
infoBean.setTotalThread(totalThread);
infoBean.setUsedMemory(usedMemory);
infoBean.setCpuRatio(cpuRatio);
return infoBean;
}
private static double getCpuRateForLinux(){
InputStream is = null;
InputStreamReader isr = null;
BufferedReader brStat = null;
StringTokenizer tokenStat = null;
try{
System.out.println("Get usage rate of CUP , linux version: "+linuxVersion);
Process process = Runtime.getRuntime().exec("top -b -n 1");
is = process.getInputStream();
isr = new InputStreamReader(is);
brStat = new BufferedReader(isr);
if(linuxVersion.equals("2.4")){
brStat.readLine();
brStat.readLine();
brStat.readLine();
brStat.readLine();
tokenStat = new StringTokenizer(brStat.readLine());
tokenStat.nextToken();
tokenStat.nextToken();
String user = tokenStat.nextToken();
tokenStat.nextToken();
String system = tokenStat.nextToken();
tokenStat.nextToken();
String nice = tokenStat.nextToken();
System.out.println(user+" , "+system+" , "+nice);
user = user.substring(0,user.indexOf("%"));
system = system.substring(0,system.indexOf("%"));
nice = nice.substring(0,nice.indexOf("%"));
float userUsage = new Float(user).floatValue();
float systemUsage = new Float(system).floatValue();
float niceUsage = new Float(nice).floatValue();
return (userUsage+systemUsage+niceUsage)/100;
}else{
brStat.readLine();
brStat.readLine();
tokenStat = new StringTokenizer(brStat.readLine());
tokenStat.nextToken();
tokenStat.nextToken();
tokenStat.nextToken();
tokenStat.nextToken();
tokenStat.nextToken();
tokenStat.nextToken();
tokenStat.nextToken();
String cpuUsage = tokenStat.nextToken();
System.out.println("CPU idle : "+cpuUsage);
Float usage = new Float(cpuUsage.substring(0,cpuUsage.indexOf("%")));
return (1-usage.floatValue()/100);
}
} catch(IOException ioe){
System.out.println(ioe.getMessage());
freeResource(is, isr, brStat);
return 1;
} finally{
freeResource(is, isr, brStat);
}
}
G. 如何獲取全部的內存數據
左擊開始,找到運行,在運行框中輸入debug,然後輸入D加上你要查看的內存地址,內存地址用十六進製表示......
如輸入D1234 ,1234是偏移地址,你如果要查看的話,必須知道內存邏輯地址,或者物理地址,才可以看到,當然看到也是16進制的數碼,能不能看懂就不知道了,呵呵
Q是退出命令...
以上只是內存查看命令,不過軟體關閉之後,佔用的內存都會釋放的,如果不釋放,當別的程序使用這段內存時就會出錯,比如提示該內存不能為written..
所以可能查不到了....