A9VG电玩部落论坛

 找回密码
 注册
搜索
楼主: ms.ksd

秋季更新的硬盘安装,所带来的loading速度增加和减少的权威解释和解决办法

[复制链接]

精华
0
帖子
222
威望
0 点
积分
224 点
种子
5 点
注册时间
2005-8-20
最后登录
2023-8-11
发表于 2008-11-18 15:45  ·  江苏 | 显示全部楼层
我只是好奇你这么肯定??

精华
0
帖子
13
威望
0 点
积分
13 点
种子
0 点
注册时间
2008-11-17
最后登录
2009-4-29
 楼主| 发表于 2008-11-18 16:12  ·  美国 | 显示全部楼层
下面是引用manilion于2008-11-18 14:07发表的:
这么点事还整伪代码, lz真是懂技术啊. 我们不知道在ms的中国的几个部门有没有搞xo的, 我们也不知道xo项目组在ms里的地位低还是不低, 但是你lz说了半天跟事实完全不符啊, 你以为大家那么好忽悠么?

这段代码应该出现在游戏代码里么, 你让人家游戏开发人员来处理怎么读数据, 怎么写cache么? xo的cache够一张d9的容量, 连替换策略都不需要, 所以根本没理由让游戏开发人员控制这个, 让主机自己控制读数据,写cache就完全可以了. lz还是洗洗睡吧, ms的做开发的人可没有这么闲的.

首先我不是ms中国的人。ms atc据我所知没有参与xo项目。

其次,我只能说,你的逻辑思维能力太差了,想问题的时候还是该多动动脑子,脑袋不用会退化的。

  当然有必要让用户来控制cache的读写,这个道理是如此的简单:

       (1)不是所有的数据都应该放入硬盘cache中,最典型的,比如游戏的过场动画。你把它cache起来干什么?在把光盘数据读入内存的同时,往硬盘cache里面写数据,是需要占用额外的系统资源的。不要白白把系统资源浪费在一些很傻的行为上。

       (2)由用户控制cache的读写能带来更大的灵活性。举个例子,一些游戏的贴图质材是以压缩格式放在光盘上的,在载入内存时需要在内存中解压,游戏编写者完全可以把质材解压以后再写入硬盘cache中,这样下次从硬盘cache中读取时就可以不用重新解压了。对于某些频繁使用的质材,能带来可观的性能提升。

       (3)让用户控制cache有助于提升关键事务性能。很显然,在读光盘的时候即时写入硬盘cache,会给系统带来一定的负担,不是任何时候都适宜这样做。如果你能意识到读光盘和写入硬盘cache都是很消耗系统资源的行为,最聪明的做法就是不要同时干这两件事。类似于操作系统的写时复制(Copy-On-Write),为什么我们不等待用户空闲的时候,甚至是用户决定要销毁该资源的时候再cache它?一个如此简单的道理是,如果用户还没有从内存中销毁一个资源,那我们没有任何必要去cache它——因为用户可以从内存中直接访问它而不用读硬盘和光盘。当用户从内存中销毁一个资源时,这意味着用户想访问它就要重新去读光盘或硬盘,也许这才是恰当的时机把该资源cache到硬盘中去?不是么?
        
  很显然,以上的种种优化,如果没有程序员的参与是不可能的,所以把读写cache的api交给游戏编写者,是个很恰当的设计。明白了么?

精华
0
帖子
13
威望
0 点
积分
13 点
种子
0 点
注册时间
2008-11-17
最后登录
2009-4-29
 楼主| 发表于 2008-11-18 16:16  ·  美国 | 显示全部楼层
下面是引用gamesage于2008-11-18 15:40发表的:
我觉得挺搞笑的,一个很简单的道理让LZ这么一包装,马上变得深不可测,而LZ也被捧到天高~~

我斗胆归纳一下LZ的意思:
1、读取硬盘数据是要比光盘快的
2、由于老机器没有硬盘,所以老机器(LZ是要表达老系统吧?)在以前并没有缓存机制,游戏数据完全是在光盘读取,所以读取速度慢
3、由于MS的系统升级,增加了硬盘缓存的机制,所以根据第1点:硬盘比光盘快的惊人发现,读取速度是有提升的
4、08秋更后由于可以将整个游戏的数据都拷贝到硬盘,还是根据第1点的惊人发现,得去结论,游戏读取速度将有大幅提升
.......

我只想叹一口气……

一位前辈说得很对,永远不要低估***的力量,因为他们人多

精华
0
帖子
357
威望
0 点
积分
398 点
种子
0 点
注册时间
2007-2-25
最后登录
2013-9-28
发表于 2008-11-18 16:32  ·  广东 | 显示全部楼层
下面是引用ms.ksd于2008-11-18 16:16发表的:


我只想叹一口气……

一位前辈说得很对,永远不要低估***的力量,因为他们人多


故弄玄虚并不代表你有水平,明眼人都看得出
骂人***并不代表你的智商就是正常的~~~
该用户已被禁言

精华
0
帖子
579
威望
0 点
积分
532 点
种子
0 点
注册时间
2004-11-15
最后登录
2016-3-22
发表于 2008-11-18 16:42  ·  辽宁 | 显示全部楼层
下面是引用ms.ksd于2008-11-17 12:44发表的:


有点靠谱

我在04到07年一直在ms的编译器部门工作,和Anders Hejlsberg共事了2年多时间
Anders Hejlsberg 是who?报上名来   

精华
0
帖子
339
威望
0 点
积分
328 点
种子
0 点
注册时间
2007-2-9
最后登录
2011-11-29
发表于 2008-11-18 16:56  ·  贵州 | 显示全部楼层
没优化好的游戏会同时从读取安装数据和写入缓冲?
这个也太蠢了吧?
难道不能设计成
if (游戏已安装)
{
  关闭CACHE功能;
  运行游戏(只读取HD数据);
}

精华
0
帖子
95
威望
0 点
积分
128 点
种子
10 点
注册时间
2007-5-8
最后登录
2024-10-30
发表于 2008-11-18 17:09  ·  天津 | 显示全部楼层
要是换Anders Hejlsberg估计会拿Pascal写这个伪码了

精华
0
帖子
642
威望
0 点
积分
652 点
种子
0 点
注册时间
2008-2-2
最后登录
2019-8-12
发表于 2008-11-18 17:15  ·  上海 | 显示全部楼层
if (游戏已安装)
{
关闭CACHE功能;
运行游戏(只读取HD数据);
}
- -牛

精华
0
帖子
13
威望
0 点
积分
13 点
种子
0 点
注册时间
2008-11-17
最后登录
2009-4-29
 楼主| 发表于 2008-11-18 17:23  ·  美国 | 显示全部楼层
下面是引用cdlock于2008-11-18 17:09发表的:
要是换Anders Hejlsberg估计会拿Pascal写这个伪码了

这位神仙 也是c#之父

我估计他要用c#来写

精华
0
帖子
13
威望
0 点
积分
13 点
种子
0 点
注册时间
2008-11-17
最后登录
2009-4-29
 楼主| 发表于 2008-11-18 17:28  ·  美国 | 显示全部楼层
下面是引用asdw226于2008-11-18 16:56发表的:
没优化好的游戏会同时从读取安装数据和写入缓冲?
这个也太蠢了吧?
难道不能设计成
if (游戏已安装)
{
.......

听起来很诱人,但很可惜做不到

请仔细想想我在52楼的帖子

如果xo系统只是简单的修改接口,从底层屏蔽掉硬盘cache功能,会导致某些游戏运行时崩溃,因为它们可能在运行时刻把“脏”数据写入到cache中去,然后永远的失去了它……

we will have a lot of work to do.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2025-3-1 22:30 , Processed in 0.194795 second(s), 16 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部