PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

谈大容量内存的各种使用方案对磁盘效率影响

  [复制链接]
刘佐 发表于 2012-10-8 23:15 | 显示全部楼层
本帖最后由 刘佐 于 2012-10-8 23:16 编辑
jeffxl 发表于 2012-10-8 23:00
这种搭配,文件系统元数据非常容易丢失就是了。运气不好,2到3次非正常关闭操作系统都会导致你丢失全部数 ...


R0组建的目的是用于提升游戏的读取速度以及应用程序意外崩溃的情况下重新启动所耗费的时间。。。

Hearts of Iron III 和 World_of_Tanks
前者在HDD上冷启动时间格外的长,后者在HDD上W7自带的热启动后时间依旧很长。
如果意外断电可以用UPS来弥补,意外关机怎么能预防?
jeffxl  楼主| 发表于 2012-10-8 23:16 | 显示全部楼层
刘佐 发表于 2012-10-8 23:15
R0组建的目的是用于提升游戏的读取速度以及应用程序意外崩溃的情况下重新启动所耗费的时间。。。

Hearts ...

很遗憾的告诉你,组了R0和没有组R0并没有游戏读取速度上你能感受到得区别。其他的也是相同。
刘佐 发表于 2012-10-8 23:24 | 显示全部楼层
jeffxl 发表于 2012-10-8 23:16
很遗憾的告诉你,组了R0和没有组R0并没有游戏读取速度上你能感受到得区别。其他的也是相同。 ...

不解,为什么?
毕竟能提供的读取和随机读取完全不在一个级别上了啊.
jeffxl  楼主| 发表于 2012-10-8 23:33 | 显示全部楼层
变心金刚2 发表于 2012-10-8 20:26
不用举别的例子,实实在在地针对缓存游戏来讲:你学习的过程是要花时间的,人家早已开始玩了。你学习的东 ...

另外,我还怀疑,您说关于使命8上你大致相当于问我WIN7会不会比XP上更快?

IO体验在压力超越磁盘性能时产生效益,最大可能的减少二次重复数据IO导致的随机瓶颈产生的卡顿。由我上两贴说明,这类游戏在游戏中几乎没有IO资源载入请求,因为在关卡载入时就已经完成,也就是说游戏中的IO压力远低于HDD的磁盘随机性能,也就是说磁盘IO能力不为瓶颈。那么试问在一个各种操作系统下都不会产生游戏中IO瓶颈的场景,如何评价哪个系统会更快?

您想问我的更快是指的什么?怎么个快法?IO不是瓶颈时都无卡顿,因为几乎没有游戏中的IO压力,难道WIN7神奇的缓存还可以提高FPS?IO能力也许会影响到FPS,当磁盘能力不足卡顿时确实会瞬间拉低FPS,基于材质渲染和材质载入有相关性的原因,材质没及时送到现存,当然下一帧画面渲染就要等待。

但是!但是,您的场景里,我已经分析此场景不是IO能力受限的场景。您是想说那些并不需要的,多余的IO性能会提高FPS吗?不是IO瓶颈的预设场景,利用IO能力增加FPS几乎是不可能的。所以您想试问我XP因为没有动态缓存效益会不会比WIN7慢,或者哪个游戏速度因为缓存方式方法不同而产生游戏性能差异的情况根本就不成立。

作为IO体验来说,如果压力并不超越磁盘加上缓存系统的能力,那么不会出现卡顿这种现象(SSD的BUG除外),不存在在满足了IO需求后有"更快”的体验这种说法。这和计算力设备影响巨大的FPS评价相当不同,FPS可以随着计算力设备的性能升高而量化评价运行效能的高低。而磁盘整体IO能力在具体体验上的评价只能说满足了业务/应用需求后就达成部署合理的条件,并不像游戏FPS有线性量化评比。而磁盘性能跑分又正好不能说明这些问题,这也是现在SSD在家用性能过剩的依据,因为只有满足了IO需求就已经不会体验到IO问题导致的“卡顿”,您无法评价出满足了需求后“IO体验更流畅”是个什么概念。

譬如IO需求在磁盘性能的1倍以上时,用户体验为非常卡顿,满足到80%以上时,很可能就是有限的流畅,有时卡顿。满足此应用需求100%需求时,您有更好的IO能力,并不能再应用当中体现出量化效益,那些磁盘性能空着也就空着了,它就是不用,因为应用不需要。而游戏FPS在没有垂直同步时,计算力是有多少用多少,这是可量化于不可量化的区别!

jeffxl  楼主| 发表于 2012-10-8 23:36 | 显示全部楼层
所以我很好奇,您是如何提问,问我在计算力设备不变,又完全没有磁盘压力的游戏场景下,仅因为缓存效益导致的IO能力大量过剩,而能够评价出游戏快慢的区别?  这个命题留待您来解决,但是计算力设不可变更,必须是同设备,仅系统不同而已。我想不出来

我实在想不出如何量化评价。
jeffxl  楼主| 发表于 2012-10-8 23:39 | 显示全部楼层
刘佐 发表于 2012-10-8 23:24
不解,为什么?
毕竟能提供的读取和随机读取完全不在一个级别上了啊.

低QD的随机性能变化不大,应用程序的执行(包括应用的启动)所需要的资源SSD和操作系统是不可预测的,比如启动QQ,您认为逻辑上他就在一个文件夹里,可是在SSD上启动QQ的数据可能分布在1000个不同的位置,完成应用的启动需要随机寻址1000次,而且一般用户的QD深度不高,更而且压力远不够满载单个SSD的磁盘性能。

普通用户的IO线程复用度在1-3之间。

所以只有磁盘性能过剩和更过剩的区别,能YY的是双R0阵列的复制粘贴文件速度,仅此而已。
变心金刚2 发表于 2012-10-9 03:40 | 显示全部楼层
jeffxl 发表于 2012-10-8 23:36
所以我很好奇,您是如何提问,问我在计算力设备不变,又完全没有磁盘压力的游戏场景下,仅因为缓存效益导致 ...

缓存只是手段,目的是改善游戏的体验,缓存的价值如果不能体现在游戏中也可以体现于其他方面,但若在游戏中无法体现其价值那就只能舍去为游戏加速这个想法。
Win7和XP一样无法知道你进入的游戏是使命召唤呢还是魔兽世界,如果要缓存那就什么游戏都缓存,那么至少玩使命时Win7也在那儿缓存而空耗着内存和CPU资源……依我看微软不会干这种事。
XP也无法用缓存软件明显提升游戏体验,因为游戏机制不会指望系统主动给它帮忙,它有自己的内部优化机制在运转
使系统内核完全在内存中运行为系统运行加速,同时减轻硬盘负担实质上也是利用大内存,只是未必称做缓存而已。给硬盘分派更多的缓存也是利用内存缓存优化。但除了这些Windows传统的利用内存进行缓存的方式之外其实我看Win7也很保守,不少人用着Win7 64位却还是用Ramdisk减轻看在线视频的硬盘损耗,你能否告诉他Win7的缓存机制其实已经将视频用内存缓存了呢?不能吧?因为Win7好像确实不会这样做。按道理讲视频也可能看第二遍,即使没看反正先存着,等可能不够用再删掉不也行嘛?硬盘多贵啊!但事实上Win7不会这样做,甚至Chrome这种硬盘上动不动过500MB的浏览器缓存Win7都不会主动去缓存加速减负,然而哪怕你将Chrome的缓存移到内存里本来就快的Chrome也不会再明显提升速度,估计Chrome自己已向系统请求到内存缓存了这些。所以我觉得这并不是Windows系统及其程序的运作方式。

评分

参与人数 1活跃度 -15 收起 理由
James007ss -15 执行版规第9条

查看全部评分

James007ss 发表于 2012-10-9 13:43 | 显示全部楼层
变心金刚2 发表于 2012-10-9 03:40
缓存只是手段,目的是改善游戏的体验,缓存的价值如果不能体现在游戏中也可以体现于其他方面,但若在游戏 ...
9.各种无中生有和没有经过证实的误导性言论、明显的攻击性言论、恶意找争议、无理纯纠结、恶意曲解版规中允许发布的内容规范、主贴恶意灌水等,视主观恶意程度扣除10-20分不等,情况严重者禁言3天。


请你重新认真、仔细的看懂看明白JEF他所说的内容及意义,你现在这些言论,我已经无法认为是正常的讨论。JEF本帖内所讨论的主题和你所说及想要证明的,从根本上就属于2个层次,如果你继续纠缠于非要把2个层次的东西合起来进行无意义的讨论,那我也只能对你执行禁言的处罚。

如果你想继续在本帖内进行讨论,我希望你不只是一味的要让jef认错或接受你的观点,而是认真审视他和你观点的差异,找出造成这些差异的根本原因,正确且理性的去分析谁更符合道理,而不是像现在这样,牵强附会进行无理的质疑及争论。
jeffxl  楼主| 发表于 2012-10-9 14:23 | 显示全部楼层
变心金刚2 发表于 2012-10-9 03:40
缓存只是手段,目的是改善游戏的体验,缓存的价值如果不能体现在游戏中也可以体现于其他方面,但若在游戏 ...

您根本就不懂Cache到底是什么,不是您想让他干什么就干什么,Cache只对自己的热数据统计算法负责(这和您的所有人为想干预过程的想法相左),但并不影响这是目前最好的IO压力分散方式。您根本就不懂什么是Cache,如果您一直停留在某种机制可以无差别减少IO的情况,所以我认为这个话题没有继续讨论的必要。
变心金刚2 发表于 2012-10-9 16:29 | 显示全部楼层
jeffxl 发表于 2012-10-9 14:23
您根本就不懂Cache到底是什么,不是您想让他干什么就干什么,Cache只对自己的热数据统计算法负责(这和您 ...

这次的回复不是出自完全的你,对吗?呵呵
若有得罪之处抱歉了

感谢以前CPU版版主对我的帮助吧,听得到听不到反正我说了哈
变心金刚2 发表于 2012-10-9 16:33 | 显示全部楼层
James007ss 发表于 2012-10-9 13:43
请你重新认真、仔细的看懂看明白JEF他所说的内容及意义,你现在这些言论,我已经无法认为是正常的讨论 ...

烦请速封我账号并封IP以免我以后碰巧搜索到,又点击进此处,费心了

点评

我已经对你的违规行为作出适当的处罚,你的行为并未构成封号或封IP的条件,所以我无权执行这些操作。而你个人的其它行为,我无法干预。  发表于 2012-10-9 17:35
Chervona 发表于 2012-10-9 16:56 | 显示全部楼层
本帖最后由 Chervona 于 2012-10-9 16:58 编辑

那位纠结于 XP 跟 7 玩游戏谁比谁快的筒子,我就想问您的 XP 支持到 DX 几?能玩 BF3 吗?
哦,我忘了您举的例子是 COD8,只支持 DX9,这例子真好,真的
ggxuelei 发表于 2012-10-9 17:28 | 显示全部楼层
变心金刚2 发表于 2012-10-9 16:33
烦请速封我账号并封IP以免我以后碰巧搜索到,又点击进此处,费心了


好多辩论啊,我看了半天,有点头晕。
各种回复都看了下。说说我的看法哈

首先,这个缓存机制,Windows不可能是永远正确永远100%英明的。换做RAMDISK,或者你说的,“程序主动申请去把可能用到的资源缓存起来”,凡是预判性的预缓存,都不可能是100%英明的,这个没有异议吧?

就是说,这个缓存,他很可能缓存到了后来其实没用到的东西,这样一直到最后这部分缓存的内容被释放掉,都没有派上用场。这样做了无用功。对吧?缓存命中率不可能100%,很可能很低呀。

那么,做了无用功的后果是什么?降低了系统效率,拖慢了应用运行的速度了么?

显然没有。为什么说没有?

我的理解,Win7的缓存,有一部分是Superfetch,将EXE程序加载过程中利用到的一些资源整理成.PF文件,在开机后就开始预加载到内存中,这部分算是主动的缓存。另外一种是被动的缓存。我们可以关闭Superfetch(用了SSD这个应该默认就关闭了),但是缓存还是会有,这部分应该就是被动缓存,程序调用到了资源后,这部分资源到了内存中,程序用过之后,系统没有直接释放这部分资源(除非程序强制要求释放,这个过程可以去看下.NET的编程),而是作为缓存了,因为程序后边可能会再次利用到,这种我认为是被动的缓存。

Superfetch的主动读取加载,可能会有额外系统开销(相对于不做Superfetch缓存来说),但是这个读取过程是在开机后磁盘压力小的时候进行的,系统不会爆发式的去读取以至到卡机的程度,影响是有,但是轻微。.PF文件的大小您也可以去看一下,并非多大的东西。.PF文件加载到内存中缓存的优先级是根据EXE程序运行的次数来排序的,经常运行的程序用到的资源优先预加载。

而被动式的缓存,我认为基本没有额外开销,应用程序去请求读取数据,读取以后,系统没有释放这部分内存而已,一点多余的磁盘IO开销也没有。这部分被动的缓存,即便0%的命中率,也不会使系统变得更慢。反过来,一旦缓存命中,系统效率会得到增益。

如果被动的这部分缓存没有被命中,而内存又不足了,这时候这部分缓存被释放掉了,做了无用功了么?做了,但是成本是什么?一段时间内内存占用率较高而已。但是占用率高并没有影响其他程序运行,因为一旦内存不足,这部分缓存就释放掉给其他程序使用了。释放内存的时间成本基本为0,缓存命中失败,不存在惩罚。

Win7的普遍缓存,成本很低,被动式的缓存几乎是没成本。为什么您还认为,这部分缓存是做了坏事呢?他造成什么负面影响了么?他无非是多占用了一些暂时用不到的内存空间,充分利用了大内存。

至于写入缓存,我认为Win7的缓存最主要的还是读取缓存而非写入缓存。因为普通应用环境下,读取的机会大于写入的机会。

至于你说的BT下载的情境,我认为,Win7不去为他单独定制一个配置的缓存,是因为没有太大的必要。下载软件普遍都有缓存设置,他会把数据攒够一个量以后才写入,而不是全零碎的随机写入。姑且不说SSD,就说HDD吧,他的弱项是随机存取,而不是持续读写,如果持续写入,当前的网速,很难对机械盘造成什么压力,更不要说SSD了。BT下载之所以在网速足够快的时候容易造成磁盘瓶颈,是因为他下载的过程中还需要同时频繁的进行读取,这才是问题。所以你把BT任务转成离线下载任务,磁盘压力会小,因为几乎不需要给别人上传了,不需要同时进行疯狂的读取了。
ggxuelei 发表于 2012-10-9 17:38 | 显示全部楼层
本帖最后由 ggxuelei 于 2012-10-9 17:40 编辑

其实就一句话,被动缓存命中失败,不存在惩罚
Win7缓存是会做不少无用功,这和SSD没Trim下的垃圾回收差不多,但是垃圾回收还有耐久度惩罚呢

SSD没有Trim的时候,他去做垃圾回收,完全不知道他GC的有效数据,会不会在下一秒就因为用户的操作,变成无效,全白费无用功。

GC错了尚有惩罚呀,耐久度惩罚。但是Win7的缓存没命中,有什么惩罚呢?内存里多存取了次东西,多耗了点几乎可以无视的电量。内存里没命中的数据,内存不够用了,他的释放,内存块从有数据变成全0无数据,需要什么成本开销么?会让您卡机了么?

缓存的算法即便没做好,用不着缓存的东西他缓存了,下一秒能用到的,他没缓存上。这最恶劣的情况下,他只是没有让系统变得更快而已,但是并没有将系统拖慢,这是关键。

CPU的缓存其实也差不多,他只能提高算法,尽量提高预测成功率,让缓存命中。但是永远不可能英明到全命中。CPU的缓存才多大点?但是你认为CPU这个缓存是无必要的?这个好像就不必我去举例子去验证了吧??
ggxuelei 发表于 2012-10-9 17:56 | 显示全部楼层
如果对编程、内存管理、大容量数据的程序内调用缓存有兴趣,可以看看Weak Reference弱引用之类的东西。对于大容量数据在程序逻辑里的处理可能方便理解。
大概提供一篇:http://blog.csdn.net/jinhuiyu/article/details/3709767

有点简单的编程基础应该就能看懂了
jackyyu 发表于 2012-11-28 16:51 | 显示全部楼层
好象是搞懂一些了,但是,为什么三星的ssd软件会要关闭Superfetch缓存预加载技术呢,这点不解,难道是三星在这一块的优化不行??
Lucas 发表于 2012-12-13 11:38 | 显示全部楼层
我一般只把win系统的TEMP和IE的缓存文件全部指定到虚拟盘里面,不知道这样应用是否可行?
waxbl 发表于 2012-12-13 17:06 | 显示全部楼层
jackyyu 发表于 2012-11-28 16:51
好象是搞懂一些了,但是,为什么三星的ssd软件会要关闭Superfetch缓存预加载技术呢,这点不解,难道是三星 ...

目前主流ssd要求关闭superfetch的目的
主要基于现阶段ssd的IO能力不会成为小文件的读取瓶颈
那么既然随时提取也不是瓶颈
也就是说假如一个人
每天需要花费N个1万块
但自动取款机每次只能提2000块
HDD就好比取款机
但如果有了POSE机
随用随刷需要多少就有多少
就没必要每天早晨起床就从银行把100万现金提取出来带在身上
以防备取款机这个瓶颈
晚上再存回去
那就徒然增加闪存颗粒的pe消耗了
SSD就好比是POSE机
所以主动缓存这个机制就不太合适IO能力突出不成为瓶颈的SSD使用了
用了不会增加任何用户体验
反而带来不必要的闪存颗粒损耗
waxbl 发表于 2012-12-13 17:20 | 显示全部楼层
Lucas 发表于 2012-12-13 11:38
我一般只把win系统的TEMP和IE的缓存文件全部指定到虚拟盘里面,不知道这样应用是否可行? ...

这个情况比较复杂了就
系统TEMP文件不建议用内存盘
我曾经用过一段时间
系统稳定性还是存在一些问题
不是很建议
但就运行速度而言
肯定超越HDD和SSD很多是真的
不过正常情况下如果是SSD
不会拖后腿
不需要
HDD可以考虑用稳定性换速度
对于IE缓存
就看你网速够不够快流量有没有限制
如果网速拖后腿或者流量有限制
那么不用考虑
还是放在硬盘比较快比较省钱
如果网速够快流量没有限制
那将IE缓存放在内存盘可以适度减少读写并且不影响浏览速度属加分行为
但我始终认为IE缓存的写入量对SSD寿命的影响
真的比较小
所以这个东西放在哪基本无所谓
如果十分纠结SSD的寿命
那就放内存
hu10us22 发表于 2013-1-13 17:39 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部