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..
所以可能查不到了....