热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

程序的虚拟内存,怎么总是和内存同时增长?

加入我读入300M的数据进入内存,这时,虚拟内存也增加300M。当然也不总这样,也有少数时候,内存20M,虚拟内存300M.这都是什么情况下,发生的呢?谁能告诉我虚拟内存的机制。
加入我读入300M的数据进入内存,这时,虚拟内存也增加300M。当然也不总这样,也有少数时候,内存20M,虚拟内存300M.
这都是什么情况下,发生的呢?
谁能告诉我虚拟内存的机制。

5 个解决方案

#1


关于windows为什么要设置虚拟内存这个功能,我们已经不得而知了,大概可以猜到盖子大叔似乎在给我们省钱?用硬盘来替代内存的使用(毕竟硬盘的价格远低于内存)。
 在vista 中由于内存的使用量相当大,所以很多网友把虚拟内存设置得也很大,甚至是物理内存的2倍以上!以为这能提高系统性能,实际上这是在帮倒忙。
 我们知道cpu的访问顺序是高速缓存到内存再到硬盘,所以注定硬盘传输的速度比内存延迟,而且由于内部运行机制的不同,内存的内部运行速度远远快于硬盘,这就是为什么我们要不断地加大内存的容量了。但是,内存再大也会用完,如果等到用完的时候系统才来想办法解决,无疑的,我们的电脑马上就会死机。所以系统里面就有备用的虚拟内存。
 虚拟内存主要依据以下3个原则进行工作:
1.在正常使用的时候,系统内部的交换(缓存)文件通常保存在虚拟内存中;
2.自动把非活动的系统进程或者程序映射到虚拟空间;
3.当物理内存低于25%左右的时候,则把虚拟内存和物理内存合并,也就是说系统此时会把你的虚拟内存也识别成物理内存。
 知道了虚拟内存的工作机制我们就知道如果把虚拟内存设置过大就会导致系统提前使用你的虚拟空间,这会使你感觉的系统的速度下降,同时硬盘负担大大加重。这就是为什么vista的使用者在开机后硬盘总是不停的转,灯不停的闪,同时很多操作都有延迟的现象(尤其是在内存比较小的情况下),这就是系统在大量使用虚拟空间的表现,这个功能这时很能使你的硬盘提前下岗。所以我们首要的前提是增加物理内存,同时我个人建议虚拟空间最多设置为物理内存的1.5倍就行了。当然如果你的内存在1G以上则可以减少到0.5至1倍完全够了。
 至于有的网友由于物理很大,则完全把虚拟内存禁用了,这个也是不可取的。因为从上文知道原则2规定了系统一般要使用虚拟空间(而不管你的物理内存多大),若系统在映射的时候找不到虚拟空间它会反复搜索并不停的向系统发请求,待到反映射时又可能认为找不到需要的进程,这时非常容易发生链接文件死锁或者进程不稳定。因此为了稳定,如果你的物理内存实在够大,那就把虚拟内存设置在比较小的范围里。 

#2


不懂,up

#3


帮 顶

#4


帮 顶

#5


mark
好久没接触过虚拟内存这个概念鸟

推荐阅读
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • d3dx9_26.dll极品飞车9修复工具下载及修复教程
    本文介绍了d3dx9_26.dll文件的修复工具下载和修复教程,解释了该dll文件的作用和安装方法,同时提供了其他dll文件下载安装的方法。文章涵盖了3d、windows、p2p、dll、visual studio等知识点,并由未来可期1212投稿。希望该技术和经验能帮到你解决dll文件相关技术问题。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了关于smarty自定义缓存名的解决思路,通过放弃生成缓存,直接生成html的静态页面来提高速度。同时提供了一个参考链接供参考。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
author-avatar
王-闻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有