java虚拟内存

java虚拟内存
java虚拟内存

目录

java虚拟机内存管理机制(一):JVM内存管理总结【分享】收藏 (1)

java虚拟机内存管理机制(二):了解JVM的内存管理与垃圾回收收藏 (5)

java虚拟机内存管理机制(三):我主管写的一些jvm内存管理知识收藏 (8)

java虚拟机内存管理机制(一):JVM内存管理总结【分享】收藏

近期看了看Java内存泄露的一些案例,跟原来的几个哥们讨论了一下,深入研究发现JVM 里面还是有不少以前不知道的细节,这里稍微剖析一下。先看一看JVM的内部结构——

如图所示,JVM主要包括两个子系统和两个组件。两个子系统分别是Class loader子系统和Execution engine(执行引擎) 子系统;两个组件分别是Runtime data area (运行时数据区域)组件和Native interface(本地接口)组件。

Class loader子系统的作用:根据给定的全限定名类名(如https://www.360docs.net/doc/028225585.html,ng.Object)来装载class文件的内容到Runtime data area中的method area(方法区域)。Java程序员可以extends https://www.360docs.net/doc/028225585.html,ng.ClassLoader类来写自己的Class loader。

Execution engine子系统的作用:执行classes中的指令。任何JVM specification实现(JDK)的核心都是Execution engine,不同的JDK例如Sun 的JDK 和IBM的JDK好坏主要就取决于他们各自实现的Execution engine的好坏。

Native interface组件:与native libraries交互,是其它编程语言交互的接口。当调用native方法的时候,就进入了一个全新的并且不再受虚拟机限制的世界,所以也很容易出现JVM无法控制的native heap OutOfMemory。

Runtime Data Area组件:这就是我们常说的JVM的内存了。它主要分为五个部分——

1、Heap (堆):一个Java虚拟实例中只存在一个堆空间

2、Method Area(方法区域):被装载的class的信息存储在Method area的内存中。当虚拟机装载某个类型时,它使用类装载器定位相应的class文件,然后读入这个class文件内容并把它传输到虚拟机中。

3、Java Stack(java的栈):虚拟机只会直接对Java stack执行两种操作:以帧为单位的压栈或出栈

4、Program Counter(程序计数器):每一个线程都有它自己的PC寄存器,也是该线程启动时创建的。PC寄存器的内容总是指向下一条将被执行指令的饿地址,这里的地址可以是一个本地指针,也可以是在方法区中相对应于该方法起始指令的偏移量。

5、Native method stack(本地方法栈):保存native方法进入区域的地址

以上五部分只有Heap 和Method Area是被所有线程的共享使用的;而Java stack, Program counter 和Native method stack是以线程为粒度的,每个线程独自拥有自己的部分。

了解JVM的系统结构,再来看看JVM内存回收问题了——

Sun的JVM Generational Collecting(垃圾回收)原理是这样的:把对象分为年青代(Young)、年老代(Tenured)、持久代(Perm),对不同生命周期的对象使用不同的算法。(基于对对象生命周期分析)

如上图所示,为Java堆中的各代分布。

1. Young(年轻代)

年轻代分三个区。一个Eden区,两个Survivor区。大部分对象在Eden区中生成。当Eden区满时,还存活的对象将被复制到Survivor区(两个中的一个),当这个Survivor 区满时,此区的存活对象将被复制到另外一个Survivor区,当这个Survivor去也满了的时候,从第一个Survivor区复制过来的并且此时还存活的对象,将被复制年老区(Tenured。需要注意,Survivor的两个区是对称的,没先后关系,所以同一个区中可能同时存在从Eden 复制过来对象,和从前一个Survivor复制过来的对象,而复制到年老区的只有从第一个Survivor去过来的对象。而且,Survivor区总有一个是空的。

2. Tenured(年老代)

年老代存放从年轻代存活的对象。一般来说年老代存放的都是生命期较长的对象。

3. Perm(持久代)

用于存放静态文件,如今Java类、方法等。持久代对垃圾回收没有显著影响,但是有些应用可能动态生成或者调用一些class,例如Hibernate等,在这种时候需要设置一个比较

大的持久代空间来存放这些运行过程中新增的类。持久代大小通过-XX:MaxPermSize=进行设置。

举个例子:当在程序中生成对象时,正常对象会在年轻代中分配空间,如果是过大的对象也可能会直接在年老代生成(据观测在运行某程序时候每次会生成一个十兆的空间用收发消息,这部分内存就会直接在年老代分配)。年轻代在空间被分配完的时候就会发起内存回收,大部分内存会被回收,一部分幸存的内存会被拷贝至Survivor的from区,经过多次回收以后如果from区内存也分配完毕,就会也发生内存回收然后将剩余的对象拷贝至to区。等

到to区也满的时候,就会再次发生内存回收然后把幸存的对象拷贝至年老区。

通常我们说的JVM内存回收总是在指堆内存回收,确实只有堆中的内容是动态申请分配的,所以以上对象的年轻代和年老代都是指的JVM的Heap空间,而持久代则是之前提到的Method Area,不属于Heap。

了解完这些之后,以下的转载一热衷于钻研技术的哥们Richen Wang关于内存管理的一些建议——

1、手动将生成的无用对象,中间对象置为null,加快内存回收。

2、对象池技术如果生成的对象是可重用的对象,只是其中的属性不同时,可以考虑采用

对象池来较少对象的生成。如果有空闲的对象就从对象池中取出使用,没有再生成新的对象,大大提高了对象的复用率。

3、JVM调优通过配置JVM的参数来提高垃圾回收的速度,如果在没有出现内存泄露且上面两种办法都不能保证内存的回收时,可以考虑采用JVM调优的方式来解决,不过一定要经过实体机的长期测试,因为不同的参数可能引起不同的效果。如-Xnoclassgc参数等。

推荐的两款内存检测工具

1、jconsole JDK自带的内存监测工具,路径jdk bin目录下jconsole.exe,双击可运行。连接方式有两种,第一种是本地方式如调试时运行的进程可以直接连,第二种是远程方式,可以连接以服务形式启动的进程。远程连接方式是:在目标进程的jvm启动参数中添加

-Dcom.sun.management.jmxremote.port=1090

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false 1090是监听的端口号具

体使用时要进行修改,然后使用IP加端口号连接即可。通过该工具可以监测到当时内存的大小,CPU的使用量以及类的加载,还提供了手动gc的功能。优点是效率高,速度快,在不影响进行运行的情况下监测产品的运行。缺点是无法看到类或者对象之类的具体信息。使用方式很简单点击几下就可以知道功能如何了,确实有不明白之处可以上网查询文档。

2、JProfiler 收费的工具,但是到处都有破解办法。安装好以后按照配置调试的方式配置

好一个本地的session即可运行。可以监测当时的内存、CPU、线程等,能具体的列出内

存的占用情况,还可以就某个类进行分析。优点很多,缺点太影响速度,而且有的类可能无法被织入方法,例如我使用jprofiler时一直没有备份成功过,总会有一些类的错误

简单的概念:

堆(Heap)和非堆(Non-heap)内存

按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的

内存均从此处分配。堆是在Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简

单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用

的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。

?堆内存分配

JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由

-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。

?非堆内存分配

JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由

XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

?JVM内存限制(最大值)

首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM 内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了

java虚拟机内存管理机制(二):了解JVM的内存管理与垃圾回收收藏

Java语言具备GC(垃圾回收)的能力,内存管理不需要应用程序去过问,这很方便。但是,GC是怎么进行的,JVM的内存参数应该怎么调整,如何优化,往往我们不是太清楚。看过一些资料后,对Sun JVM的内存管理以及垃圾回收的机制大概有了一个概念,这里将这些资料归纳和翻译出来。本文内容主要基于Sun JVM 1.3.1,在后续版本中有不少优化措施,但是这些基本概念还是不变的。

这里假设大家对GC的概念和基本原理都已经了解,不详细叙述了。

当JVM进行GC的时候,是要消耗CPU资源和需要一定时间的,这会影响到程序的正常运行,因此需要尽可能减少GC消耗的时间。Java程序运行过程中,对象的生命周期有长有短,其中相当大部分是都是比较短命的,例如局部的对象一用完就可以回收了。在大多数情况下,只要能够及时回收这些短命对象的内存,就能够确保JVM有足够内存来分配给新的对象。因此JVM采用一种分代回收(generational collection) 的策略,用较高的频率对年轻的对象(young generation)进行扫描和回收,这种叫做minor collection,而对老对象(old generation)的检查回收频率要低很多,称为major collection。这样就不需要每次GC都将内存中所有对象都检查一遍。

Sun JVM 1.3 有两种最基本的内存收集方式:一种称为copying或scavenge,将所有仍然生存的对象搬到另外一块内存后,整块内存就可回收。这种方法有效率,但需要有一定的空闲内存,拷贝也有开销。这种方法用于minor collection。另外一种称为

mark-compact,将活着的对象标记出来,然后搬迁到一起连成大块的内存,其他内存就可以回收了。这种方法不需要占用额外的空间,但速度相对慢一些。这种方法用于major collection.

在JVM 1.3及以后的版本中,还有其他可选的内存收集方法,通过特定的参数来设定。例如:增量式回收,每次只处理一小部分;替代单线程copying的多线程并行回收;替代mark-compact的concurrent mark-sweep回收等等。参考资料[4][5]中有更多描述。

JVM管理的内存,通常叫做堆(heap),可以用下面的图来描述。

JVM启动后,保留一段地址空间,这个空间的大小由-Xmx指定。这块空间的大小就是heap 可能的最大值,但一开始不一定全都分配了物理内存,初始分配的heap大小由-Xms指定,如果-Xms小于-Xmx,剩余部分是virtual的,当需要的时候,再向OS申请。而且申请之后,是继续占用而不释放给该jvm以外的程序。比如你的jvm申请了1G的内存,刚开始用了200M,然后随着程序的进行,内存用到900M,然后进行垃圾回收,想释放一些内存给其他程序,这是不可以的,此时,jvm依然会保有着900M内存。

内存的监控可以查看文章运用Jconsole监控JVM

绿色部分是young generation的内存,由一块Eden(伊甸园,有意思)和两块Survivor Space(1.4文档中称为semi-space)构成。新创建的对象的内存都分配自eden。两块Survivor Space总有会一块是空闲的,用作copying collection的目标空间。Minor collection的过程就是将eden和在用survivor space中的活对象copy到空闲survivor space中。所谓survivor,也就是大部分对象在伊甸园出生后,根本活不过一次GC。对象在young generation里经历了一定次数的minor collection后,年纪大了,就会被移到old generation中,称为tenuring。(是否仅当survivor space不足的时候才会将老对象tenuring? 目前资料中没有找到描述)

浅蓝色部分是old generation的内存。

深蓝色部分称为permanent generation,是JVM用来保存class object和meta data,大小由-XX:PermSize和-XX:MaxPermSize指定。大量动态生成(编译)和加载class会增加这部分内存的耗用。

剩余内存空间不足会触发GC,如eden空间不够了就要进行minor collection,old generation空间不够要进行major collection,permanent generation空间不足会引发full GC。

很多参数会影响里面各部分空间的分配。-XX:MinHeapFreeRatio与

-XX:MaxHeapFreeRatio设定空闲内存占总内存的比例范围,这两个参数会影响GC的频率和单次GC的耗时。-XX:NewRatio决定young与old generation的比例。Young generation空间越大,minor collection频率越低,但是old generation空间小了,又可能导致major collection频率增加。-XX:NewSize和-XX:MaxNewSize直接指定了young generation的缺省大小和最大大小。

-Xmx

set maximum Java heap size

-Xms

set initial Java heap size

-XX:MinHeapFreeRatio=40

Minimum percentage of heap free after GC to avoid expansion.

-XX:MaxHeapFreeRatio=70

Maximum percentage of heap free after GC to avoid shrinking.

-XX:NewRatio=2

Ratio of new/old generation sizes. [Sparc -client:8; x86 -server:8; x86

-client:12.]-client:8 (1.3.1+), x86:12]

-XX:NewSize=2.125m

Default size of new generation (in bytes) [5.0 and newer: 64 bit VMs are scaled 30% larger; x86:1m; x86, 5.0 and older: 640k]

-XX:MaxNewSize=

Maximum size of new generation (in bytes). Since 1.4, MaxNewSize is computed as a function of NewRatio.

-XX:SurvivorRatio=25

Ratio of eden/survivor space size [Solaris amd64: 6; Sparc in 1.3.1: 25; other Solaris platforms in 5.0 and earlier: 32]

-XX:PermSize=

Initial size of permanent generation

-XX:MaxPermSize=64m

Size of the Permanent Generation. [5.0 and newer: 64 bit VMs are scaled 30% larger; 1.4 amd64: 96m; 1.3.1 -client: 32m.]

(上面给出的缺省值不一定准确,不同JVM版本和不同OS环境下会有不同)

这里给出的只是基本的介绍,下面reference中的文章都很不错,对进一步了解或者查找性能优化参数都有帮助。

java虚拟机内存管理机制(三):我主管写的一些jvm内存管理知识收藏

补习了一下jvm的内存管理知识,有以下心得分享:

1、jvm的内存分区分级大粒度管理相较memcache的固定单元小粒度内存管理,拥有更高的内存利用率,但带来内存碎片的问题。

2、为了解决内存碎片问题,jvm采取了碎片整理的方式,但碎片整理是很耗时的。

3、为了提高碎片整理的效率,因此引入了周期性的GC,而且分区分级的方式也控制了每次GC和碎片整理的范围。

4、由于jvm使用堆内存来存储局部变量,而局部变量具有生存周期短,先申请的后释放的特点,因此在低级别的分区中进行GC是效率最高的方式。感觉环环相扣,有点奇妙。

再补充GC的一个作用:寻找回路的孤立存储,并释放其占用的空间。这更要求GC的非实时、周期性

Windows虚拟内存不足解决方法

Windows虚拟内存不足解决方法 全大中https://www.360docs.net/doc/028225585.html, | 2006-04-26 09:03 | 引:经常听别人说起虚拟内存,请问什么是虚拟内存?为什么我的电脑在使用过一段时间后,总是提示虚拟内存太低,是不是只有重新安装操作系统才能解决问题? ??? 问:经常听别人说起虚拟内存,请问什么是虚拟内存?为什么我的电脑在使用过一段时间后,总是提示虚拟内存太低,是不是只有重新安装操作系统才能解决问题? 答:Windows操作系统用虚拟内存来动态管理运行时的交换文件。为了提供比实际物理内存还多的内存容量以供使用,Windows操作系统占用了硬盘上的一部分空间作为虚拟内存。当CPU有需 ? 求时,首先会读取内存中的资料。当所运行的程序容量超过内存容量时,Windows 操作系统会将需要暂时储存的数据写入硬盘。所以,计算机的内存大小等于实际物理内存容量加上“分页文件”(就是交换文件)的大小。如果需要的话,“分页文件”会动用硬盘上所有可以使用的空间。 如果你的系统虚拟内存太低,可以鼠标右击“我的电脑”选择“属性→高级→性能下设置→高级→打开虚拟内存设置”,可以重新设置最大值和最小值,按物理内存的1.5~2倍来添加数值,也可以更改虚拟内存的存放位置,可以设置放到其他容量较大的硬盘分区,让系统虚拟内存有充分的空间,让系统运行更快。 虚拟内存太低有三种解决办法: 1. 自定义的虚拟内容的容量(系统默认是自动)太小,可以重新划分大小。 2. 系统所在的盘(一般是C盘)空余的容量太小而运行的程序却很大,并且虚拟内存通常被默认创建在系统盘目录下,我们通常可以删除一些不用的程序,并把文档图片以及下载的资料等有用文件移动到其他盘中,并清理“回收站”,使系统盘保持1GB以上的空间,或者将虚拟内存定义到其他空余空间多的盘符下。 3. 系统盘空余的容量并不小,但因为经常安装、下载软件,并反复删除造成文件碎片太多,也是容易造成虚拟内存不足的原因之一,虚拟内存需要一片连续的空间,尽管磁盘空余容量大,但没有连续的空间,也无法建立虚拟内存区。可以用磁盘工具整理碎片。 Windows虚拟内存不足的几种解决方法问: 经常听别人说起虚拟内存,请问什么是虚拟内存?为什么我的电脑在使用过一段时间后,总是提示虚拟内存太低,是不是只有重新安装操作系统才能解决问题? 答:Windows操作系统用虚拟内存来动态管理运行时的交换文件。为了提供比实际物理内存还多的内存容量以供使用,Windows操作系统占用了硬盘上的一部分

怎样设置虚拟内存

怎样设置虚拟内存 收集者:小路发布于:https://www.360docs.net/doc/028225585.html, 发布时间:2007-3-9 8:06:56 发布人:小路 减小字体增大字体 当系统运行时,先要将所需的指令和数据从外部存储器(如硬盘、软盘、光盘等)调入内存中,CPU再从内存中读取指令或数据进行运算,并将运算结果存入内存中,内存所起的作用就像一个“二传手”的作用。当运行一个程序需要大量数据、占用大量内存时,内存这个仓库就会被“塞满”,而在这个“仓库”中总有一部分暂时不用的数据占据着有限的空间,所以要将这部分“惰性”的数据“请”出去,以腾出地方给“活性”数据使用。这时就需要新建另一个后备“仓库”去存放“惰性”数据。由于硬盘的空间很大,所以微软Windows操作系统就将后备“仓库”的地址选在硬盘上,这个后备“仓库”就是虚拟内存。在默认情况下,虚拟内存是以名为Pagefile.sys的交换文件保存在硬盘的系统分区中。 怎样设置虚拟内存 在默认状态下,是让系统管理虚拟内存的,但是系统默认设置的管理方式通常比较保守,在自动调节时会造成页面文件不连续,而降低读写效率,工作效率就显得不高,于是经常会出现“内存不足”这样的提示,下面就让我们自已动手来设置它吧。 ①用右键点击桌面上的“我的电脑”图标,在出现的右键菜单中选择“属性”选项打开“系统属性”窗口。在窗口中点击“高级”选项卡,出现高级设置的对话框(图1);

图 1 ②点击“性能”区域的“设置”按钮,在出现的“性能选项”窗口中选择“高级”选项卡,打开其对话框。 ③在该对话框中可看到关于虚拟内存的区域,点击“更改”按钮进入“虚拟内存”的设置窗口。选择一个有较大空闲容量的分区,勾选“自定义大小”前的复选框,将具体数值填入“初始大小”、“最大值”栏中,而后依次点击“设置→确定”按钮即可(图2),最后重新启动计算机使虚拟内存设置生效。

如何设置虚拟内存以及三大误区

在中的作用至关重要,中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,运用了技术,将一部分空间来充当内存使用,虽然硬盘的运行速度不能与内存相比,可是容量却要比内存的容量高出许多。其作用在于可将一些读取到内存中却暂时不用的数据转移到虚拟内存中,这样便可释放出内存的空间,将有限的内存空间去继续存放未被读取的数据,以缓解内存的紧张。

网上有很多关于虚拟内存设置的教程和说明,这里我们要说的是设置虚拟内存最常见的三个错误,相信大家看后对虚拟内存的设置又会有不同的理解了。 错误1:虚拟内存不设置在系统盘,应该专门分出一个空白分区专门用来存储页面文件,不要再存放其它任何文件。

因为系统盘含有是系统文件和页面文件,是硬盘读写最频繁的分区,硬盘读写时最耗时的操作是什么呢?是定位!而同一分区内的磁头定位无疑要比跨分区的远距离来回定位要节省时间!所以,虚拟内存设定在系统盘内的才是执行最快、效率最高的。 错误2:虚拟内存的最佳值为:最小值设置为物理内存的1.5倍,最大值设置为物理内存的3倍。 要根据实际使用情况来判断。如今随着内存的价格越来越便宜,特别是Win7系统普及后,所需的物理内存的容量比以往有了大幅增加,传统的虚拟内存设置方法已经不再适用! 一般512MB内存,根据实际使用内存占用,可以设虚拟内存为256-768MB(内存+虚拟内存之和一般比正常占用高256MB即可)。 1GB内存,根据实际使用内存占用情况,可以设虚拟内存为128-1024MB(内存+虚拟内存之和一般比正常占用高256-512MB即可)。平时正常占用为几百MB的人(占多数),甚至可以禁用虚拟内存(有限制的可以设少量虚拟内存,如16-128MB)。 内存为及以上的,一般可以禁用虚拟内存(有软件限制的可以设少量虚拟内存,如16-128MB)。部分确实会使用大量内存的人,如玩大型3D游戏、制作大幅图片、3D建模等,并收到系统内存不足警告的,才需要酌情设定虚拟内存。 错误3:虚拟内存越大越好。 虚拟内存过大,既浪费了磁盘空间,又增加了磁头定位的时间,降低了系统执行效率,没有任何好处。正确设置可节省256MB-左右空间

操作系统实验五 Windows XP 虚拟内存管理

实验五 Windows XP 虚拟内存管理 一实验目的 1) 了解存储器管理以及虚拟存储器管理的基本原理 2)了解和学习Windows系统管理工具中关于内存管理的设置和使用; 二实验环境 需要准备一台运行Windows XP操作系统的计算机。 三背景知识 虚拟存储器技术是当代计算机中广泛采用的内存管理方案,在Windows XP中合理的进行虚拟内存的设置,可以更有效的提高系统的工作效率。利用系统自带的系统监视器可以查看虚拟内存的使用情况,根据使用情况可以灵活的进行虚拟内存的管理。 四实验内容与步骤 启动并进入Windows环境,单击Ctrl + Alt + Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗口。 步骤1:当前机器中由你打开,正在运行的应用程序有: 1) 5.doc[兼容模式]-Microsoft Word 2) 常州大学-Windows Internet Explorer 3) 常州大学教务单点登录接入平台- Windows Internet Explorer 步骤2:单击“进程”选项卡,一共显示了 33 个进程。请试着区分一下,其中: 系统 (SYSTEM) 进程有 19 个,填入表2-1中。 表2-1 实验记录 映像名称用户名CPU使用率内存使用进程实现的功能Svchost.exe SYSTEM 00 4416K NT Kernel &System Service.exe SYSTEM 00 3272K Windows会话管理器 Sqlservr.ex e SYSTEM 00 9580K Client Server Runtime Process LMS.exe SYSTEM 00 2912K 服务和控制器应用程序MDM.exe SYSTEM 00 3424K Local Security Authority Process Inetinfo.exe SYSTEM 00 9780K 本地会话管理器服务Spoolsv.exe SYSTEM 00 5612K Windows 服务主进程 Ati2evxx.e xe SYSTEM 00 4024K 360主动防御服务模块 Svchost.exe SYSTEM 00 24912K Windows 登录应用程序Svchost.exe SYSTEM 00 5084K Windows 服务主进程Service.exe SYSTEM 00 3476K 服务和控制器应用程序Isass.exe SYSTEM 00 1736K Local Security Authority Process

怎样设置虚拟内存

怎样设置虚拟内存: / (一)合理设置虚拟内存 / 虚拟内存的设定主要根据你的物理内存大小和电脑的用途来设定,在桌面上用鼠标右击“我的电脑”,选择“属性”,就可以看到内存了。根据微软公司的建议,虚拟内存设为物理内存容量的1.5--3倍,例如512MB的内存,虚拟内存设定为768--1536MB;1G的内存,虚拟内存设定为1536--3072MB。也可让Windows来自动分配管理虚拟内存,它能根据实际内存的使用情况,动态调整虚拟内存的大小。在虚拟内存设置页面下方有一个推荐数值,如果确实不知道设置多少为最佳,建议虚拟内存就设为推荐的数值。虚拟内存有初始大小与最大值两个数值,最好把初始大小和最大值设为相同,以避免系统频繁改变页面文件的大小,影响电脑运行。内存容量2GB或以上的,如果不运行大型文件或游戏,也可以关闭虚拟内存。/ 虚拟内存就是在你的物理内存不够用时把一部分硬盘空间作为内存来使用,不过由于硬盘传输的速度要比内存传输速度慢的多,所以使用虚拟内存比物理内存效率要慢。个人实际需要的值应该自己多次调整为好。设的太大会产生大量的碎片,严重影响系统速度,设的太小就不够用,于是系统就会提示你虚拟内存太小。/ (二)虚拟内存设置方法 / 右击“我的电脑”选择“属性--高级--性能--设置--高级--虚拟内存--更改”,选择虚拟内存所在的磁盘,然后在下边单击“自定义大小” 并输入“初始大小”和“最大值”,最后按“设置”按钮,再确定即可。虚拟内存从C盘设置到其它磁盘的方法(如果在其它盘,设置方法一样):右击我的电脑--属性--高级-- 性能设置--高级--虚拟内存更改--点选C盘--单选“无分页文件”--“设置”,此时C盘旁的虚拟内存就消失了;然后选中D或F盘,单选“自定义大小”-- 在下面的“初始大小”和“最大值”两个文本框中输入数值--“设置”—确定 --重启电脑,便完成了设置。 / 虚拟内存最好不要与系统设在同一个磁盘内,内存是随着使用而动态地变化,设在C盘就容易产生磁盘碎片,影响系统运行速度。所以,最好将虚拟内存设置在磁盘剩余空间较大而又不常用的磁盘,如D、F,这样可以避免系统在C盘进行 频繁的读写操作而影响系统速度。虚拟内存在一台电脑,只用设置一次,可设置在任何一个磁盘。 / (三)减轻内存负担: / 1、打开的程序不可太多。如果同时打开的文档过多或者运行的程序过多,就没有足够的内存运行其他程序,要关闭不用的程序和窗口。 / 2、自动运行的程序不可太多。单击“开始”--“运行”,键入 “Msconfig”-“确定”,打开“系统配置实用程序”窗口,删除不想自动加载的启动项目。

Windows虚拟内存管理

基本概念【摘录】 每个进程都被赋予它自己的虚拟地址空间。对于32位进程来说,这个地址空间是4GB,因为32位指针可以拥有从0x000000000至0xFFFFFFFF之间的任何一个值。这使得一个指针能够拥有4 294 967 296个值中的一个值,它覆盖了一个进程的4GB虚拟空间的范围。这是相当大的一个范围。由于每个进程可以接收它自己的私有的地址空间,因此当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于所有其他进程的内存则隐藏着,并且不能被正在运行的线程访问。 注意在Windows 2000中,属于操作系统本身的内存也是隐藏的,正在运行的线程无法访问。这意味着线程常常不能访问操作系统的数据。Windows 98中,属于操作系统的内存是不隐藏的,正在运行的线程可以访问。因此,正在运行的线程常常可以访问操作系统的数据,也可以破坏操作系统(从而有可能导致操作系统崩溃)。在Windows 98中,一个进程的线程不可能访问属于另一个进程的内存。 前面说过,每个进程有它自己的私有地址空间。进程A可能有一个存放在它的地址空间中的数据结构,地址是0x12345678,而进程B则有一个完全不同的数据结构存放在它的地址空间中,地址是0x12345678。当进程A中运行的线程访问地址为0x12345678的内存时,这些线程访问的是进程A的数据结构。当进程B中运行的线程访问地址为0x12345678的内存时,这些线程访问的是进程B的数据结构。进程A中运行的线程不能访问进程B的地址空间中的数据结构。反之亦然。 记住,这是个虚拟地址空间,不是物理地址空间。该地址空间只是内存地址的一个范围。在你能够成功地访问数据而不会出现违规访问之前,必须赋予物理存储器,或者将物理存储器映射到各个部分的地址空间。 每个进程的虚拟地址空间都要划分成各个分区。地址空间的分区是根据操作系统的基本实现方法来进行的。不同的Windows内核,其分区也略有不同。

调大虚拟内存有什么好处

调大虚拟内存有什么好处 调大虚拟内存好处一: 不要设置在c盘设置到其他盘付 2g~4g 够了一半内存大于4g 的都不需要虚拟内存直接无页面文件也够用的 一般虚拟内存一般设置为物理内存的1~1.5倍,别设太小就好。另外c盘小的话,可以设置在d盘或者其他剩余空间比较大的盘里。 虚拟内存最好不要与系统设在同一分区内,内存是随着使用而动态地变化,c盘就容易产生磁盘碎片,影响系统运行速度,所以,最好将虚拟内存设置在其它分区中磁盘剩余空间较大而又不常用的盘中,如d、f,这样可以避免系统在此分区内进行频繁的读写操作而影响系统速度。在一台电脑中,虚拟内存在一个分区中设置就够用了,不必在各个分区中设置虚拟内存。 置虚拟内存的方法是:右击我的电脑—属性—高级—性能设置—高级—虚拟内存更改—点选c盘—单选“无分页文件(n)”—“设置”,此时c盘中的虚拟内存就消失了;然后选中d盘,单选“自定义大小”—在下面的“初始大小”和“最大值”两个文本框中输入数值—“设置”—确定—重启,便完成了设置。 调大虚拟内存好处二: (一)合理设置虚拟内存/虚拟内存的设定主要根据你的物理内存大小和电脑的用途来设定,在桌面上用鼠标右击“我的电脑”,

选择“属性”,就可以看到内存了。根据微软公司的建议,虚拟内存设为物理内存容量的1.5--3倍,例如512mb的内存,虚拟内存设定为768--1536mb;1g的内存,虚拟内存设定为1536--3072mb。也可让windows来自动分配管理虚拟内存,它能根据实际内存的使用情况,动态调整虚拟内存的大小。 在虚拟内存设置页面下方有一个推荐数值,如果确实不知道设置多少为最佳,建议虚拟内存就设为推荐的数值。虚拟内存有初始大小与最大值两个数值,最好把初始大小和最大值设为相同,以避免系统频繁改变页面文件的大小,影响电脑运行。 内存容量2gb或以上的,如果不运行大型文件或游戏,也可以关闭虚拟内存。/虚拟内存就是在你的物理内存不够用时把一部分硬盘空间作为内存来使用,不过由于硬盘传输的速度要比内存传输速度慢的多,所以使用虚拟内存比物理内存效率要慢。个人实际需要的值应该自己多次调整为好。设的太大会产生大量的碎片,严重影响系统速度,设的太小就不够用,于是系统就会提示你虚拟内存太小。 (二)虚拟内存设置方法/右击“我的电脑”选择“属性--高级--性能--设置--高级--虚拟内存--更改”,选择虚拟内存所在的磁盘,然后在下边单击“自定义大小”并输入“初始大小”和“最大值”,最后按“设置”按钮,再确定即可。虚拟内存从c盘设置到其它磁盘的方法(如果在其它盘,设置方法一样):右击我的电脑--属性--高级--性能设置--高级--虚拟内存更改--点选c盘--单选“无分页文件”--“设置”,此时c盘旁的虚拟内存就消失了;然后选中d或f盘,单选“自定义大小”--在下面的“初始大小”

虚拟内存删除

内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。真难想象如果电脑没有内存将如何运行。为了解决这个问题,Windows中运用了虚拟内存技术,当然vista也不例外。即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存。虽然这样使用硬盘作虚拟内存读取速度相对于内存速度要逊色很多,但是终究是有效果的。举一个例子来说,如果电脑只有512MB物理内存的话,当读取一个容量为600MB 的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。 下面,就让我们一起来看看如何对虚拟内存进行设置吧。 具体步骤如下: (1).打开计算机"系统" (2).在左窗格中,单击“高级系统设置”。 (3).在“高级”选项卡上,在“性能”下,单击“设置”。 (4).单击“高级”选项卡,然后在“虚拟内存”下,单击

“更改”。 (5).清除“自动管理所有驱动器的页面文件大小”复选框。 (6).在“驱动器[卷标]”下,单击要更改的页面文件所在的驱动器。 (7).单击“自定义大小”,在“初始大小(MB)”或“最大大小(MB)”框中键入新的大小(以兆字节为单位),单击“设置”,然后单击“确定”。

如果你觉得比较的麻烦你可以使用上面的步骤,然后选择系统管理的大小即可。 这样可以通过虚拟内存来弥补的不足。如果你是在怕麻烦了直接再买个内存条插上好了。vista之家团队(https://www.360docs.net/doc/028225585.html,)(deepblue整理编辑)

如何设置笔记本虚拟内存

电脑小技巧教你如何设置虚拟内存 虚拟内存的概念是相对于物理内存而言的,当系统的物理内存空间入不敷出时,操作系统便会在硬盘上开辟一块磁盘空间当做内存使用。 设置虚拟内存 虚拟内存的概念是相对于物理内存而言的,当系统的物理内存空间入不敷出时,操作系统便会在硬盘上开辟一块磁盘空间当做内存使用,这部分硬盘空间就叫虚拟内存。Windows 98中采用Win386.swp文件的形式,而Windows 2000/XP 则采用页面文件pagefile.sys的形式来管理虚拟内存。 一、大小情况 1.一般情况 一般情况下,建议让Windows来自动分配管理虚拟内存,它能根据实际内存的使用情况,动态调整虚拟内存的大小。 2.关于最小值 Windows建议页面文件的最小值应该为当前系统物理内存容量再加上12MB,而对于物理内存容量小于256MB的用户,则建议将页面文件的最小值设得更大些: ①使用128MB或者更少内存的用户,建议将当前物理内存容量的1.75倍设置为页面文件的最小值。 ②内存大小在128MB到256MB之间的用户,建议将当前物理内存容量的1.5倍设置为页面文件的最小值。 3.关于最大值 一般来说,页面文件的最大值设置得越大越好,建议设置为最小值的2到3倍。 4.极端情况 假如硬盘空间比较紧张,在设置页面文件时,只需保证它不小于物理内存的3/4即可。 如果物理内存很大(大于512MB),则可以将虚拟内存禁用 5.根据不同的任务环境设置 ①以3D游戏为主的环境 3D游戏对CPU、显卡和内存要求都很高,如果物理内存小于256MB,建议把虚拟内存预设得大一点,这对提高游戏的稳定性和流畅性很有帮助。 ②以播放视频为主的环境 视频应用对硬盘空间的“胃口”很大,不过千万不要像在3D游戏环境中一样把虚拟内存设得很大,尤其是Windows XP的用户。因为Windows XP不会自动把不需要的空间释放掉,也就是说那个Pagefiles.sys文件会越来越大。如果你把虚拟内存和Windows XP放在同一分区,播放RM、ASF等视频流文件以后,系统经常会提示你虚拟内存设得太小或是磁盘空间不足。查看此时的页面文件,已经足有1GB大小了。所以建议经常欣赏视频文件的Windows XP用户,把初始数值设小一点,或者将虚拟内存转移到系统盘以外的分区。 二、设置方法 下面以在Windows XP下转移虚拟内存所在盘符为例介绍虚拟内存的设置方

设虚拟内存大小为多少合适

设虚拟内存大小为多少合适 设虚拟内存大小为多少合适? 虚拟内存啲设置主要根据你啲实际内存大小和你电脑啲用途来设定,在桌面上用鼠标右击“本人啲计算机”,选择“属性”,就可以看到内存了。根据微软啲建议,虚拟内存设为物理内存容量啲 1.5--3倍,例如512mb啲内存,虚拟内存设定为768--1536mb;1g啲内存,虚拟内存设定为 1536--3072mb。也可让windows来主动分配管理虚拟内存,它可以根据实际内存啲应用情况,动态调整虚拟内存啲大小。在虚拟内存设置页面下方有一个推荐数值,假如确实不晓得设置几为最佳,建议虚拟内存就设为推荐啲数值。 虚拟内存有初始大小与最大值两个数值,最佳把初始大小和最大值设为相同,以避免系统频繁改变页面文件啲大小,影响计算机运行。内存容量2gb或以上啲,要是不运行大型文件或游戏,也可以关闭虚拟内存。 虚拟内存啲使用原理就是在你啲物理内存不够用时把一部分硬盘空间作为内存来应用,不过由于硬盘传输啲速度要比内存传输速度慢啲多,所以应用虚拟内存比物理内存效率要慢。个人实际需要啲值应该本人多次调整为好。设啲太大会产生大量啲碎片,严重影响系统速度,设啲太小就不够用,于是系统就会提示你虚拟内存太小。

虚拟内存的设置方法 右建点击击“本人啲计算机”选择“属性--高级--性可以--设置--高级--虚拟内存--更加改”,选择虚拟内存所在啲磁盘,然后在下边单击“自定义大小”并写入“初始大小”和“最大值”,最后按“设置”按钮,再确定即可。虚拟内存从c盘设置到其它磁盘啲办法:右击本人啲计算机--属性--高级--性可以设置--高级--虚拟内存更加改--点选c盘--单选“无分页文件”--“设置”,此时c盘旁啲虚拟内存就消失了;然后选中d或f盘,单选“自定义大小”--在下面啲“初始大小”和“最大值”两个文本框中写入数值--“设置”—确定--重启计算机,便完成了设置。 虚拟内存最好不要和系统设在同一个磁盘内,内存是随着应用而动态地变化,设在c盘就容易产生磁盘碎片,影响系统运行速度。所以,最佳将虚拟内存设置在磁盘剩余空间较大而又不常用啲磁盘,如d、f,这样可以避免系统在c盘进行频繁啲读写操作而影响系统速度。虚拟内存在一台计算机,只用设置一次,可设置在任何一个磁盘。 减轻内存负担 1、那些主动运行啲程序不可太多。点击“开始”--“运行”,键入“msconfig”-“确定”,打开“系统配置实用程序”窗口,删除不想主动加载啲启动项目。 2、在电脑里打开啲程序不可太多。如果同时打开啲文档过多或者运行啲程序过多,就没有足够啲内存运行其他程序,要关闭不用啲程序和窗口。 相信这是大家都会喜欢这样的设置方法的,主要是可以实现

虚拟内存设置是不是越大越好

虚拟内存设置是不是越大越好 虚拟内存帮助我们释放磁盘空间,需要是还能进行数据交换,那么有人问到虚拟内存是不是越大越好?下面是小编收集整理的虚拟内存如何设置最好,希望对大家有帮助~~ 虚拟内存介绍: 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。 Windows 8/8.1 操作系统如出现开机时卡在Windows徽标页面,无法进入系统,必须强制关机再重启才能打开时,可适当调整虚拟内存设置解决。 虚拟内存设置最好的方法

方法/步骤 1虚拟内存设置步骤 右击计算机-属性-高级系统设置-高级-设置-高级-更改,选择系统管理的大小(推荐使用),点击确定。 2.电脑虚拟内存不是越大越好 电脑虚拟内存不是越大越好,虚拟内存大小不要超过你物理内存的1.5倍,内存4G或者以上的、不玩大型游戏的可以不设置,因为虚拟内存对于硬盘消耗太大。 在进行虚拟内存设置之前,对电脑进行全盘清理,尤其是电脑磁盘清理。可以观看小编的经验。c盘空间越来越小怎么完美清理 3.自定义 如果你的电脑内存1G,2G,你又要运行较大的程序,可以进行自定义大小设置,最大值不大于物理内存的1.5倍,也可以使用系统的推荐,初始大小设置成物理内存大小。

4.虚拟内存的删除 点击无分页文件,点击设置-确定 5.虚拟内存更改位置 把c盘的虚拟文件删除后,点击D盘,点击系统管理的大小,点击设置,点击确定

aix虚拟内存管理器

虚拟内存管理器(VMM)性能概述 虚拟内存管理器(VMM)性能概述 虚拟地址空间划分成段。每段的大小是 256 MB,它是虚拟内存地址空间中一个邻接的部分,数据对象可映射到该空间。 进程对数据的寻址能力按段(或对象)的级别进行管理,所以段既可以在进程间共享,也可以进行专门维护。例如,进程可共享代码段但拥有独立和专用的数据段。 实际内存管理 虚拟内存段划分成固定大小的单元叫做页。缺省页面大小是 4096 字节。某些系统也支持大页面,通常只能通过系统调用 shmat 访问。段中的每页在需要之前可位于实际内存(RAM)中,或存储在磁盘上。同样,实际内存也可以划分成 4096 字节的页面帧。VMM 的角色是管理分配实际内存页面帧并且解析程序对虚拟内存页面的引用,这些页面当前不在实际内存中或还不存在(例如,当进程第一次引用其数据段的某一页时)。 因为在任何给定时刻使用的虚拟内存数量可能比实际内存大,所以 VMM 必须将余量存储在磁盘上。从性能的观点来看,VMM 有两个稍微对立的目标: ·最小化使用虚拟内存的总处理器时间和磁盘带宽代价 ·最小化缺页故障的响应时间代价 在跟踪这些目标时,VMM 维护一个页面帧的空闲列表,它可用于补偿缺页故障。VMM 使用了一个页面替换算法来确定当前处于内存中的哪些虚拟内存页要将它们的页面帧重新指定到空闲列表中。页面替换算法使用了几个机制: ·虚拟内存段分成持久段或工作段。 ·虚拟内存段分成包含计算内存或文件内存。 ·跟踪在访问时引起缺页故障的虚拟内存页。 ·缺页故障分成新页故障或重新调页故障。 ·在每个虚拟内存段中维护一个重新调页故障率的统计信息。 ·用户可调阈值影响页面替换算法的结果。 以下各节较详细地描述了空闲列表和页面替换机制。 空闲列表 VMM 维护一个空闲页面帧的逻辑列表,它用于解决缺页故障。在绝大多数环境中,VMM 偶尔必须通过重新指定由运行进程占有的一些页面帧来添加到空闲列表中。需要重新指定页面帧的虚拟内存页由 VMM 的页面替换算法进行选择。VMM 阈值决定了重新指定的帧的数量。 持久段与工作段对比 持久段的页面在磁盘上的存储位置是永久性的。包含数据或可执行程序的文件映射到持久段中。因为持久段的每一页都有永久的磁盘存储位置,所以当页面被更改且不能再留在实际内存中时,VMM 将该页写回到那个位置。当页面被选择放置到空闲列表中时,如果它没有更改过则不需要 I/O 操作。如果后来再次引用到该页,那么就从它的永久磁盘存储位置读入一个新副本。 工作段是暂时的,它们仅在由进程使用时才存在,且没有永久的磁盘存储位置。进程堆栈和数据区域映射到工作段,这一点和内核文本段、内核扩展文本段、共享库文本段和数据段相同。当工作段的页面不能保存在实际内存中时,它们也必须占有磁盘存储位置。磁盘调页空间就是用于这个目的。 下列插图显示某些类型的段和它们的页面在磁盘上的位置之间的关系。它还显示了页面在实际内存中时实际(专有)的位置。 图形持久和工作存储段. 该插图显示某些类型的段和它们的页面在磁盘上的位置之间的关系。它还显示了页面在实际内存中时实际(专有)的位置。工作段是暂时的,这意味着它们仅在由进程使用时才存在并且没有永久的磁盘存储位置。进程堆栈和数据区域映射到工作段,这一点和内核文本段、内核扩展文本段、共享库文本段和数据段相同。当工作段的页面不能保存在实际内存中时,它们也必须占有磁盘存储位置。磁盘调页空间就是用于这个目的。

怎么设置虚拟内存

虚拟内存设置的大小,比较多的解释是物理内存的1.5到2倍,它的设置方法同我们平常的操作不太一样。下面是正确的方法。 右键点“我的电脑”,左键点“属性”,点选“高级”选项卡,点“性能”里的“设置”按钮,再选“高级”选项卡,点下面的“更改”按钮,所弹出的窗口就是虚拟内存设置窗口,一般默认的虚拟内存是从小到大的一段取值范围,这就是虚拟内存变化大小的范围,最好给它一个固定值,这样就不容易产生磁盘碎片了,具体数值根据你的物理内存大小来定,一般为物理内存的1.5到2倍,如内存为256M,那么应该设置256*1.5=384M,或者干脆512M,设置方法如下: 假设内存为256M,虚拟内存放在D盘,先要将默认的清除,保持C盘为选中状态,单选“无分页文件(N)”再按“设置”按钮,此时C盘旁的虚拟内存就消失了,然后选中D盘,单选“自定义大小”,在下面的“初始大小”和“最大值”两个方框里都添上512,再点一下“设置”按钮,会看到D盘的旁边出现了“512-512”的字样,这样就说明设置好了,再一路确定,最终,系统会要重新启动,重启一下,便完成了设置 电脑有时会提示“虚拟内存太小”,特别在运行一些大软件的时候会有这样的提示。这不是指实际的物理内存小,而是指虚拟的内存小了。 因为物理内存总是有限的,在运行很多程序时,内存中装不下所有的数据,这时windows就会将本应存在内存中的数据存在硬盘上,所以从硬盘中划出一部分空间做为虚拟的内存。物理内存速度快,但是空间有限,虚拟内存空间可以设置很大,但是速度要慢些。 虚拟内存的大小是可以设置的。下面说说怎样更改虚拟内存的大小。 1、右击“我的电脑”,选择“属性”

如何更改虚拟内存

适用范围及演示工具 适用范围:WIN XP/2003/WIN7/WIN8各版本 演示系统:XP专业版/WIN7旗舰版/WIN8专业版 XP/2003系统虚拟内存怎么设置 因为XP和WIN2003界面类似,所以就以2003系统界面为例,其实操作步骤及图解完全一样。 第1步:单击开始菜单中的运行,在打开的运行窗口中键入【desk.cpl】并确定打开【显示属性】窗口。 注:还可以直接直接在控制面板或直接在桌面我的电脑图标上右键属性打开,更多打开方法参考显示属性打开方法。 第2步:在打开的【系统属性】程序窗口中单击高级选项卡,并在高级选项卡中找到性能下面的【设置】按扭。 第3步:再次在打开的【性能选项】窗口中单击【高级】选项卡,并在高级选项卡下的虚拟内存下面找到并单击【更改】按扭。 第4步:在新打开的【虚拟内存】窗口中,单击选中驱动器中需要设置的驱动器,然后再单击【自定义大小(C)】,这时下面初始大小和最大值后面的文本框即可输入,初始大小和最大值输入自己需要设置的数字,然后单击【设置】按扭,最后并确定即可生效。 注:在虚拟内存设置这里有不少网友疑惑,这个初始大小和最大值的虚拟内存怎么设置最好呢?其实这个初始大小就是自己真实内存的大小,最大值为1.5倍或是2倍左右。如上图所示,作者真实的内存是2GB,以上设置的虚拟内存就最合适。 第5步:按本文所说的第1到第4步设置完毕之后,并一次次的确定之后。这时因为系统设置改变,系统就会提示必须重新启动计算机才能使新的设置生效。,选择是电脑重启之后即可生效。生效之后虚拟内存所设置的根目录中的隐藏文件pagefile.sys就会出现相关大小的改变。 WIN7系统虚拟内存怎么设置

虚拟内存怎么设置最佳

虚拟内存怎么设置最佳 2009-08-12 信息来源:芜湖电脑网 视力保护色:【大中小】【打印本页】【关闭窗口】 虚拟内存设置就行了,不必重装系统,2G的内存建议你虚拟内存初始大小与最大值都设置为3070MB,设置相同数值可以避免容易产生磁片。详细怎么设置请看下面: 如何设置虚拟内存: (一)合理设置虚拟内存 虚拟内存的设定主要根据你的物理内存大小和计算机的用途来设定,在桌面上用鼠标右击“本人的计算机”,选择“属性”,就可以看到内存了。根据微软公司的建议,虚拟内存设为物理内存容量的1.5--3倍,例如512MB的内存,虚拟内存设定为768--1536MB;1G的内存,虚拟内存设定为1536--3072MB。也可让Windows来主动分配管理虚拟内存,它可以根据实际内存的应用情况,动态调整虚拟内存的大小。在虚拟内存设置页面下方有一个推荐数值,假如确实不晓得设置几为最佳,建议虚拟内存就设为推荐的数值。虚拟内存有初始大小与最大值两个数值,最佳把初始大小和最大值设为相同,以避免系统频繁改变页面文件的大小,影响计算机运行。内存容量2GB或以上的,假如不运行大型文件或游戏,也可以关闭虚拟内存。 虚拟内存就是在你的物理内存不够用时把一部分硬盘空间作为内存来应用,不过由于硬盘传输的速度要比内存传输速度慢的多,所以应用虚拟内存比物理内存效率要慢。个人实际需要的值应该本人多次调整为好。设的太大会产生大量的碎片,严重影响系统速度,设的太小就不够用,于是系统就会提示你虚拟内存太小。 (二)虚拟内存设置办法 右击“本人的计算机”选择“属性--高级--性可以--设置--高级--虚拟内存--更加改”,选择虚拟内存所在的磁盘,然后在下边单击“自定义大小”并写入“初始大小”和“最大值”,最后按“设置”按钮,再确定即可。虚拟内存从C盘设置到其它磁盘的办法:右击本人的计算机--属性--高级--性可以设置--高级--虚拟内存更加改--点选C盘--单选“无分页文件”--“设置”,此时C盘旁的虚拟内存就消失了;然后选中D或F盘,单选“自定义大小”--在下面的“初始大小”和“最大值”两个文本框中写入数值--“设置”—确定--重启计算机,便完成了设置。 虚拟内存最佳不要与系统设在同一个磁盘内,内存是随着应用而动态地变化,设在C盘就容易产生磁盘碎片,影响系统运行速度。所以,最佳将虚拟内存设置在磁盘剩余空间较大而又不常用的磁盘,如D、F,这样可以避免系统在C盘进行频繁的读写操作而影响系统速度。虚拟内存在一台计算机,只用设置一次,可设置在任何一个磁盘。 (三)减轻内存负担: 1、打开的程序不可太多。假如同时打开的文档过多或者运行的程序过多,就没有足够的内存运行其他程序,要关闭不用的程序和窗口。

虚拟内存如何清除

虚拟内存如何清除 需要优化一下,看一下资料! 虚拟内存用硬盘空间做内存来弥补计算机RAM空间的缺乏。当实际RAM满时(实际上,在RAM满之前),虚 拟内存就在硬盘上创建了。当物理内存用完后,虚拟内存管理器选择最近没有用过的,低优先级的内存部分 写到交换文件上。这个过程对应用是隐藏的,应用把虚拟内存和实际内存看作是一样的。 每个运行在WindowsNT下的应用被分配到4GB的属于自己的虚拟地址空间(2GB给应用,2GB给操作系统)。 使用虚拟内存存在这样的问题,那就是读写硬盘的速度大大慢于读写实际RAM的速度。这就是当NT系统在没有足够的内存时程序运行慢的原因。 虚拟内存是文件数据交叉链接的活动文件。是WINDOWS目录下的一个"WIN386.SWP"文件,这个文件会不 断地扩大和自动缩小。 就速度方面而言,CPU的L1和L2缓存速度最快,内存次之,硬盘再次之。但是虚拟内存使用的是硬盘的空间,为什么我们要使用速度最慢的硬盘来做为虚拟内存呢?因为电脑中所有运行的程序都需要经过内存来 执行,如果执行的程序很大或很多,就会导致我们只有可怜的256M/512M内存消耗殆尽。而硬盘空间动辄几 十G上百G,为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用... 手动设置虚拟内存 在默认状态下,是让系统管理虚拟内存的,但是系统默认设置的管理方式通常比较保守,在自动调节时 会造成页面文件不连续,而降低读写效率,工作效率就显得不高,于是经常会出现“内存不足”这样的提示,下面就让我们自已动手来设置它吧。 ①用右键点击桌面上的“我的电脑”图标,在出现的右键菜单中选“属性”选项打开“系统属性”窗口。在窗口中点击“高级”选项卡,出现高级设置的对话框 ②点击“性能”区域的“设置”按钮,在出现的“性能选项”窗口中选择“高级”选项卡,打开其对话框。 ③在该对话框中可看到关于虚拟内存的区域,点击“更改”按钮进入“虚拟内存”的设置窗口。选择一 个有较大空闲容量的分区,勾选“自定义大小”前的复选框,将具体数值填入“初始大小”、“最大值”栏中,而后依次点击“设置→确定”按钮即可,最后重新启动计算机使虚拟内存设置生效。 什么是虚拟内存 不知大家发现没有,在Windows 2000(XP)目录下有一个名为pagefile.sys的系统文件(Windows 98下为Win386.swp),它的大小经常自己发生变动,小的时候可能只有几十兆,大的时候则有数百兆,这种毫无规 律的变化实在让很多人摸不着头脑。其实,pagefile.sys是Windows下的一个虚拟内存,它的作用与物理内存基本相似,但它是作为物理内存的“后备力量”而存在的,也就是说,只有在物理内存已经不够使用的时候,它才会发挥作用。 虚拟内存的产生 我们都知道,虽然在运行速度上硬盘不如内存,但在容量上内存是无法与硬盘相提并论的。当运行一个程序 需要大量数据、占用大量内存时,内存就会被“塞满”,并将那些暂时不用的数据放到硬盘中,而这些数据 所占的空间就是虚拟内存。现在我们也明白为什么pagefile.sys的大小会经常变化了。 虚拟内存的优化 虚拟内存的大小是由Windows来控制的,但这种默认的Windows设置并不是最佳的方案,因此我们要对其进 行一些调整。这样才能发挥出系统的最佳性能。 1、改变页面文件的位置 其目的主要是为了保持虚拟内存的连续性。因为硬盘读取数据是靠磁头在磁性物质上读取,页面文件放在磁 盘上的不同区域,磁头就要跳来跳去,自然不利于提高效率。而且系统盘文件众多,虚拟内存肯定不连续,

北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告

虚拟内存管理实习报告

目录 内容一:总体概述 (3) 内容二:任务完成情况 (3) 任务完成列表(Y/N) (3) 具体Exercise的完成情况 (3) 内容三:遇到的困难以及解决方法 (11) 内容四:收获及感想 (11) 内容五:对课程的意见和建议 (11) 内容六:参考文献 (11)

内容一:总体概述 本次lab主要是针对操作系统内存管理的学习,内存管理主要有固定分区、可变分区、页式和段式管理。现代操作系统主要采用页式内存管理,它把用户程 序地址空间划分成大小相等的部分,称为页。内存空间按页的大小划分为大小相 等的区域,称为内存块(物理页面,页框,页帧)。以页为单位进行分配,逻辑 上相邻的页,物理上不一定相邻。 虚拟内存的基本思想:每个程序拥有自己的地址空间,这个空间被分割成多个块,每一块称作一页或者页面,每一页有连续的地址范围。这些页被映射到物 理内存,但并不是所有页都必须在内存中才能运行。当程序引用到一部分在物理 内存中的地址空间时,由硬件立即执行必要的映射。当程序引导到一部分不在物 理内存中德的地址空间时,由操作系统负责将缺失的部分装入屋里内存并重新执 行失效的指令。 内容二:任务完成情况 任务完成列表(Y/N) Exercise1 Exercise2 Exercise3 Exercise4 Exercise5 Exercise6 Exercise7 Challange 完成情况Y Y Y Y Y Y N N 具体Exercise的完成情况 一、TLB异常处理 目前,Nachos系统对于内存的管理是基于软件模拟的TLB机制。其工作原理、异常处理、替换算法等方面,与分页式内存管理非常相像。 Exercise 1 源代码阅读 ?阅读code/userprog/https://www.360docs.net/doc/028225585.html,,着重理解nachos执行用户程序的过程,以及该过 程中与内存管理相关的要点。 ?阅读code/machine目录下的machine.h(cc),translate.h(cc)文件和code/userprog目 录下的exception.h(cc),理解当前Nachos系统所采用的TLB机制和地址转换机制。 解答:https://www.360docs.net/doc/028225585.html,中有2个主要的方法,分别是StartProcess和ConsoleTest,它们的作用是给用 户进程分配内存空间并且执行用户进程和测试控制台输入。StartProcess方法中首先通过 OpenFile *executable = fileSystem->Open(filename);打开文件,然后通过 space = new AddrSpace(executable); currentThread->space = space; 为文件分配内存空间并且把内存空间给当前进程。

虚拟内存的设置

虚拟内存 不知大家发现没有,在Windows2000(XP)目录下有一个名为pagefile.sys的系统文件(Windows98下为Win386.swp),它的大小经常自己发生变动,小的时候可能只有几十兆,大的时候则有数百兆,这种毫无规律的变化实在让很多人摸不着头脑。其实,pagefile.sys 是Windows下的一个虚拟内存,它的作用与物理内存基本相似,但它是作为物理内存的“后备力量”而存在的,也就是说,只有在物理内存已经不够使用的时候,它才会发挥作用。 1,虚拟内存的产生 我们都知道,虽然在运行速度上硬盘不如内存,但在容量上内存是无法与硬盘相提并论的。当运行一个程序需要大量数据、占用大量内存时,内存就会被“塞满”,并将那些暂时不用的数据放到硬盘中,而这些数据所占的空间就是虚拟内存。现在我们也明白为什么pagefile.sys 的大小会经常变化了。 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。下面,就让我们一起来看看如何对虚拟内存进行设置吧。 2,虚拟内存的设置 对于虚拟内存主要设置两点,即内存大小和分页位置,内存大小就是设置虚拟内存最小为多少和最大为多少;而分页位置则是设置虚拟内存应使用那个分区中的硬盘空间。对于内存大小的设置,如何得到最小值和最大值呢?你可以通过下面的方法获得:选择“开始→程序→附件→系统工具→系统监视器”(如果系统工具中没有,可以通过“添加/删除程序”中的Windows安装程序进行安装)打开系统监视器,然后选择“编辑→添加项目”,在“类型”项中选择“内存管理程序”,在右侧的列表选择“交换文件大小”。这样随着你的操作,会显示出交换文件值的波动情况,你可以把经常要使用到的程序打开,然后对它们进行使用,这时查看一下系统监视器中的表现值,由于用户每次使用电脑时的情况都不尽相同,因此,最好能够通过较长时间对交换文件进行监视来找出最符合您的交换文件的数值,这样才能保证系统性能稳定以及保持在最佳的状态。 找出最合适的范围值后,在设置虚拟内存时,用鼠标右键点击“我的电脑”,选择“属性”,弹出系统属性窗口,选择“性能”标签,点击下面“虚拟内存”按钮,弹出虚拟内存设置窗口,点击“用户自己指定虚拟内存设置”单选按钮,“硬盘”选较大剩余空间的分区,然后在“最小值”

相关文档
最新文档