搜索
楼主: 翼风Fly
收起左侧

[分享] Win10 10525才加入的新功能?压缩存储

[复制链接]
风之咩~
发表于 2015-8-19 15:47:56 | 显示全部楼层
我是隔壁的小号 发表于 2015-8-19 15:46
当前版区版主拥有最高权限啊。

我看不了
我是隔壁的小号
发表于 2015-8-19 15:48:40 | 显示全部楼层



下降到90权限了。
风之咩~
发表于 2015-8-19 15:52:18 | 显示全部楼层


也看不到
当初我该在伯乐截图那帖子回复的- -
我是隔壁的小号
发表于 2015-8-19 15:53:23 | 显示全部楼层
本帖最后由 我是隔壁的小号 于 2015-8-19 15:55 编辑
风之咩~ 发表于 2015-8-19 15:52
也看不到
当初我该在伯乐截图那帖子回复的- -


囧,你到底想看啥啊。
我的帖子降到30了。

风之咩~
发表于 2015-8-19 15:55:17 | 显示全部楼层
我是隔壁的小号 发表于 2015-8-19 15:53
囧,你到底想看啥啊。
我的帖子降到30了。

看所有
我是隔壁的小号
发表于 2015-8-19 15:55:52 | 显示全部楼层



我装作听得懂的样子。
wenshui1013
发表于 2015-8-19 17:51:50 | 显示全部楼层
10525这个需要获取会员版本吧==
超平头
发表于 2015-8-19 18:25:20 | 显示全部楼层
安卓表示都有这个功能。。。
翼风Fly
 楼主| 发表于 2015-8-22 19:56:52 | 显示全部楼层
【远景首发原创翻译】Windows 10:内存压缩
http://bbs.pcbeta.com/viewthread-1634521-1-1.html




翻译自 Insider Hub (会员中心)中的 Windows 10:Memory Compression。


在宣布内存压缩(Memory compression)功能之后,许多 Insiders 要求我们提供关于此项功能的详细信息。这篇博客试图深入地分析内存管理器(Memory Manager)的内部工作过程并分析它内部集成的内存压缩引擎。

任何操作系统最主要的目的就是高效地管理和共享资源。操作系统如何分配内存显得尤为重要,因为它影响到用户对系统响应速度的感知。

Windows 10 中,我们启用了内存管理器 【Memory Manager (MM) ,它的目的是压缩不经常访问的内存页面,这可以减少对硬盘的读取和写入(页面文件)并能因此提升系统的响应速度。通过压缩内存,我们减少了每个进程使用的内存,这允许操作系统在物理内存中运行更多程序(在进行传统的页面文件写入之前)。

Memory Manager 决定向硬盘写入页面文件的时候,读取或写入到硬盘的数据(一般来说)仅为原始大小的40%。这种压缩提升了系统中其它无关操作的性能,因为干扰性的 IO 负载减少了。结果就是,用户获得了更流畅,更快的反应速度,应用启动速度和稳定性也得到了提升。

在阐述Windows 10 的变化之前,我将描述一些 Windows 内存管理的基本概念并给出我们是如何将压缩功能引入的概述。



首先一个概念就是工作集是一个进程正在使用的物理内存。一个专用工作集体现的是这个进程独有的内存。进程们也会接触到其它“共享”的页,这些页可以供数个进程引用。当你选择任务管理器的进程视图时,你看到的每个进程的内存占用实质上是它们的专用工作集。注意:为了描述更简洁,当我说在这篇博文提到“工作集”时即为“专用工作集”。

在一个进程当中,它的工作集的某些子集使用很不频繁,因为必须有效的利用很有限的内存资源,这些页必须被收回并且要为其他进程所利用。当内存管理器认定一个页面长期不活动之后,内存管理器把它放在「更改列表」上。一个另外的进程将这些页写入到硬盘上的页面文件,接着在内存中,它们被移动到了「备用列表」上。这次写入会导致:如果内存被另外一个进程从「备用列表」回收,但原始进程开始寻找自己的页时,数据可以从页面文件获取到。

然而,「备用列表」上的页如果尚未回收,它们会保留它们的数据,直到内存管理器重新分配给另一个进程的工作集。它们可以在回收之前被先前拥有该页的应用重新利用。这叫做软中断(soft fault。但如果这个页面已经被改变了用途,原始的进程还要求内存管理器获得那个页面,一个硬中断(hard fault就发生了。原始的进程现在正在要求使用被其他进程抢走的内存,操作系统必须读取硬盘IO来对其进行检索。

就像之前阐述的那样,当内存管理器面对内存压力的时候,它会决定哪些页面应该被移动到「更改列表」上。这叫做trimming(修剪)。但是Windows 8新增的Universal Windows Platform (UWP) 程序可以整个地交换(swapped内存,那就是基于应用的粒度而不是基于页面的粒度的操作。这可以是因为UWP程序在没有前台运行时会被暂停(直到用户重新切换到它们时),所以这可以被做到。没有页面会被接触到(直到App重新开始工作时),所以交换整个程序是十分安全的。需要把这个程序交换回来所需的硬盘IO类型仅为连续读取,这比随机读取要快得多。想了解更多Windows 8 内存管理器是怎么交换UWP程序的,请看这篇 Bill Karagounis 的博文

Windows10 引入了一个在页面文件和标准页面操作的层,它可以压缩移动到「更改列表」的所有页。这意味着当内存管理器感受到内存压力的时候,它会压缩未使用的页而不再是直接把它们写入到硬盘。内存管理器现在只在压缩都无法缓解内存压力时才进行硬盘IO操作。使用这种策略可以换来更少的硬盘操作。多亏有了压缩,内存里存储的信息要比以前更多。



这是通过一种叫压缩存储的概念实现的,这是一个内存内的储存已压缩页面的存储。对于传统的Windows桌面应用和任何其他非UWP应用而言,共用一个系统存储。对于每个Windows Runtime 应用而言,它们每个应用都有自己的存储(目的是开启前面提到的修剪trimming和交换swapping)。内存管理器压缩它们并把它们放在适当的存储上,而不是将「修改列表」简单地写入到页面文件中。

压缩存储位于System 进程的工作集中。 注意在图表中我们把System进程的工作集独/立于其它工作集显示是为了看起来更方便,但要注意的是,System工作集和其他进程的工作集都是一样的。虽然乍一看违/反了直觉,这是因为System进程维护压缩存储,它的工作集会在可用内存增大时开始扩大。这在任务管理器中是可以观察到的。

首先,观察下System进程使用的内存:



然后,打开并暂停(楼主注:Metro App概念,即最小化)一些程序:

然后System进程的工作集开始扩张:



每个压缩存储在必要时都通过压缩它自身来保证一个好的压缩率。实践证明,已压缩的内存的大小仅为未压缩的内存大小的40%,并且,我们得出了这个结果,在一般的设备和一般的工作负载下,Windows 10的磁盘占用率比以前版本的 Windows 都要低,大概仅为 50% 左右。这将会减少等待所有设备上IO的时间,而且还会提升固态硬盘的使用寿命。

尽管压缩提供给操作系统更多内存空间去加载应用程序,虚拟内存依旧是必须的。在Windows 10中,写入页面文件的操作会通过移动System进程的页面到「修改列表」实现。如果页面从System进程的压缩存储移动到「修改列表」中,内存管理器会知道它们已经被压缩并且很快会写入到页面文件中。这个写入操作比写入未压缩的页面要小。也就是说:内存管理器只会写入System进程中已压缩的页面到页面文件。

所以,让我们聊聊一个进程是怎么从压缩存储或者页面文件中获得信息的吧。在前一情形(楼主注:从压缩存储中获得信息),当一个进程在压缩存储的页面上中断,内存管理器解压这个页面,并且放在这个进程的工作集上,这个过程叫一个软压缩中断(a soft compression fault。但是在后一种情形中(楼主注:从页面文件中获得信息),内存管理器还是首先尝试前一种的解决方法,却发现信息不在内存里。接着内存管理器从页面文件读取压缩页,并复制到系统进程的工作集中,解压和中断过程遵循之前的规则。

解压是一个高度并行的过程,所以出于高效起见,Windows 可以同时移动多个页面。正是由于如此,交换(swappingUWP 应用(对应的操作为trimming)的效果特别好。但这不仅仅是解压缩这么简单:Windows结合了连续读取和并行性的优点,使得swapping后的页面重新读入内存的速度非常快;它一次读取一个数据块,并在等待下一个I/O操作完成时,先利用处理器的多个核心并行解压刚才所读取的数据。所以呢,如果您之前的平台是因为磁盘I/O效率不给力而导致卡顿的话,让其运行Windows 10就会流畅许多。(这段文字是小麦@raymai97 翻译的,非常感谢!)

总的来说,内存压缩允许 Windows 10 通过减少物理内存使用率的方式在所有平台上更有效地使用可用内存,它的结果就是,页面文件相关的IO操作明显减少,对硬盘IO的依赖性降低。而且,它提升了内存管理器必须写入页面文件时的IO表现。总之,我们希望用户们体验总体响应速度提升和可用性提升的Windows 10设备。

Thanks,

EthanCreeger Base Platform 组的项目经理。我已经在 Windows ( Microsoft) 工作了两年关于内核中硬件方面的内容,比如ACPIPCIE
风之咩~
发表于 2015-8-22 20:03:30 | 显示全部楼层
翼风Fly 发表于 2015-8-22 19:56
【远景首发原创翻译】Windows 10:内存压缩
http://bbs.pcbeta.com/viewthread-1634521-1-1.html

洗洗睡把  微软已经玩不出什么花样了
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛|优惠券| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 苏ICP备07004770号 ) GMT+8, 2017-11-21 21:46 , Processed in 0.042216 second(s), 5 queries , MemCached On.

快速回复 返回顶部 返回列表