虚拟内存

Windows 内存管理

允我心安 提交于 2020-03-29 03:53:38
1 . Windows 的内存结构 Windows 系统中的每个进程都被赋予它自己的虚拟地址空间。对于 32 位进程来说,这个地址空间是 4GB ,因为 32 位指针可以拥有从 0x00000000 至 0xFFFFFFFF 之间的任何一个值。对于 64 位进程来说,则这个空间是 16EB 。由于每个进程可以接收它自己的私有的地址空间,因此当进程中的一个线程正在运行时,该线程也只能访问只属于它的进程的内存。属于所有其他进程的内存则隐藏着,并且不能被访问。 每个进程的虚拟地址空间都要划分成各个分区,地址空间的分区时根据操作系统的基本实现来进行的,不同的 windows 内核,其分区也略有不同。下面以 32 位 windows 2000 (x86 和 alpha 处理器 ) 分区 地址范围 作用 NULL 指针分配的区域 0x00000000 为了帮助掌握 NULL 指针的分配情况,任何读写都将引发访问违规 0x0000FFFF 用户方式分区 0x00010000 这是进程的私有空间,该分区是维护进程的大部分数据的地方。 0x7FFEFFFF 64k 禁止进入分区 0x7FFF0000 这个分区是禁止进入的,任何访问都将是违规。保留此分区是为了更加容易地实现操作系统。怕用户内存越界到内核区。 0x7FFFFFFF 内核方式 0x80000000 这个分区是存放操作系统代码的地方

Windows Embedded CE 6.0 Internals (2) Memory

不想你离开。 提交于 2020-03-29 03:35:52
这篇文章是继文章 Windows Embedded CE 6.0 Internals (1) 的。内存这块一直是让人头痛的东西,因为比较复杂,但是我们却需要经常与其打交道——内存泄漏、异常定位、程序优化等等。这篇文章以及后续的文章我试着能够刨根问底。 5.内存构架 内存的种类 1.Random Access Memory (RAM) Random access memory can be read or written directly at any address . There are various types of RAM that are differentiated by the underlying hardware technology used to implement them. However they all share the ability to be read or written directly at any random address. RAM memory is volatile, the contents are only maintained as long as power is not lost. 2.Read Only Memory (ROM) Read Only Memory typically refers to memory

cmd命令行修改windows虚拟内存pagefile.sys

喜夏-厌秋 提交于 2020-03-24 11:55:58
cmd命令行修改windows虚拟内存 #查看当前设置 wmic pagefile list /format:list #取消自动管理分页文件大小 wmic computersystem where name="%computername%" set AutomaticManagedPagefile=False #修改页面文件大小 最小1024MB,最大4096MB wmic pagefileset where name="C:\pagefile.sys" set InitialSize=1024,MaximumSize=4096 #重启生效 shutdown -r -t 0 来源: 51CTO 作者: myworkit 链接: https://blog.51cto.com/jameszhan/2385225

cmd命令行修改windows虚拟内存pagefile.sys

馋奶兔 提交于 2020-03-24 11:51:28
cmd命令行修改windows虚拟内存 #查看当前设置 wmic pagefile list /format:list #取消自动管理分页文件大小 wmic computersystem where name="%computername%" set AutomaticManagedPagefile=False #修改页面文件大小 最小1024MB,最大4096MB wmic pagefileset where name="C:\pagefile.sys" set InitialSize=1024,MaximumSize=4096 #重启生效 shutdown -r -t 0 来源: 51CTO 作者: myworkit 链接: https://blog.51cto.com/jameszhan/2385227

pidstat 命令简介

心不动则不痛 提交于 2020-03-16 06:45:25
pidstat pidstat命令指定采样周期和采样次数,命令形式为”pidstat [option] interval [count]”,以下pidstat输出以2秒为采样周期,输出10次cpu使用统计信息: 指令说明 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 使用pidstat进行问题定位时,以下命令常被用到: # 使用-u选项,pidstat将显示各活动进程的cpu使用统计,执行”pidstat -u”与单独执行”pidstat”的效果一样。 pidstat -u 1 # 使用-r选项,pidstat将显示各活动进程的内存使用统计: pidstat -r 1 # 使用-d选项,我们可以查看进程IO的统计信息: pidstat -d 1 -r 或是默认情况 minflt/s: 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数 majflt/s: 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时

Redis内存使用优化与存储

眉间皱痕 提交于 2020-03-11 06:42:22
常用内存优化手段与参数   我们知道Redis实际上的内存管理成本非常高,即占用了过多的内存,所以我们讨论通过一系列的参数和手段来控制和节省内存。   首先最重要的一点是不要开启Redis的VM选项,即虚拟内存功能,这个本来是作为Redis存储超出物理内存数据的一种数据在内存与磁盘换入换出的一个持久化策略,但是其内存管理成本也非常的高,并且我们后续会分析此种持久化策略并不成熟,所以要关闭VM功能,请检查你的redis.conf文件中 vm-enabled 为 no。   其次最好设置下redis.conf中的maxmemory选项,该选项是告诉Redis当使用了多少物理内存后就开始拒绝后续的写入请求,该参数能很好的保护好你的Redis不会因为使用了过多的物理内存而导致swap,最终严重影响性能甚至崩溃。   另外Redis为不同数据类型分别提供了一组参数来控制内存使用,我们在前面详细分析过Redis Hash是value内部为一个HashMap,如果该Map的成员数比较少,则会采用类似一维线性的紧凑格式来存储该Map, 即省去了大量指针的内存开销,这个参数控制对应在redis.conf配置文件中下面2项: hash-max-zipmap-entries 64 hash-max-zipmap-value 512 hash-max-zipmap-entries  

电脑使用变慢七大原因解析

主宰稳场 提交于 2020-03-09 16:31:35
相信绝大多数用户在使用电脑的过程中都会发现电脑越用越慢,而其中的大部分人会抱着“慢就慢点儿吧”的心理继续使用,殊不知这样一来弊端会越积累越多,最后导致更严重的问题发生,下面我们就简单的来看一下几种常见的电脑变慢的原因和解决办法,希望给广大用户一些提示。    在开机时加载太多程序    电脑在启动的过程中,除了会启动相应的驱动程序外,还会启动一些应用软件,这些应用软件我们称为随即启动程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、MSN之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。    桌面图标太多会惹祸    桌面上有太多图标也会降低系统启动速度。很多用户都希光将各种软件或者游戏的快捷方式放在桌面上,使用时十分方便,其实这样一来会使得系统启动变慢很多。由于Windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们

电脑使用变慢七大原因全解析

若如初见. 提交于 2020-03-09 15:59:26
相信绝大多数用户在使用电脑的过程中都会发现电脑越用越慢,而其中的大部分人会抱着“慢就慢点儿吧”的心理继续使用,殊不知这样一来弊端会越积累越多,最后导致更严重的问题发生,下面我们就简单的来看一下几种常见的电脑变慢的原因和解决办法,希望给广大用户一些提示。    在开机时加载太多程序   电脑在启动的过程中,除了会启动相应的驱动程序外,还会启动一些应用软件,这些应用软件我们称为随即启动程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、MSN之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。    桌面图标太多会惹祸   桌面上有太多图标也会降低系统启动速度。很多用户都希光将各种软件或者游戏的快捷方式放在桌面上,使用时十分方便,其实这样一来会使得系统启动变慢很多。由于Windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们,图标越多

电脑变慢原因解析 ZT

不羁岁月 提交于 2020-03-09 15:57:29
1> 在开机时加载太多程序   电脑在启动的过程中,除了会启动相应的驱动程序外,还会启动一些应用软件,这些应用软件我们称为随即启动程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、msn之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。   2> 桌面图标太多会惹祸   桌面上有太多图标也会降低系统启动速度。很多用户都希光将各种软件或者游戏的快捷方式放在桌面上,使用时十分方便,其实这样一来会使得系统启动变慢很多。由于windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们,图标越多,所花费的时间当然就越多。同时有些杀毒软件提供了系统启动扫描功能,这将会耗费非常多的时间,其实如果你已经打开了杀毒软件的实时监视功能,那么启动时扫描系统就显得有些多余,还是将这项功能禁止吧!

Linux虚拟内存相关知识

梦想与她 提交于 2020-03-07 14:15:36
Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟地址空间)与物理地址进行映射,获得真正物理地址; 3、如果虚拟地址对应物理地址不在物理内存中,则产生缺页中断,真正分配物理地址,同时更新进程的页表;如果此时物理内存已耗尽,则根据内存替换算法淘汰部分页面至物理磁盘中。 Linux 虚拟地址空间如何分布? Linux 使用虚拟地址空间,大大增加了进程的寻址空间, 虚拟地址空间内由低地址到高地址分别为: 1、只读段:该部分空间只能读,不可写;(包括:代码段、rodata 段(C常量字符串和#define定义的常量) ) 2、数据段:保存全局变量、静态变量的空间; 3、堆 :就是平时所说的动态内存, malloc/new 大部分都来源于此。其中堆顶的位置可通过函数 brk 和 sbrk 进行动态调整。 4、文件映射区域:如动态库、共享内存等映射物理空间的内存,一般是 mmap 函数所分配的虚拟地址空间。 5、栈:用于维护函数调用的上下文空间,一般为 8M ,可通过 ulimit –s 查看。 6、内核虚拟空间:用户代码不可见的内存区域,由内核管理(页表就存放在内核虚拟空间)。 32 位系统有4G 的地址空间:: 其中 0x08048000~0xbfffffff