» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 不知道什么是“虚拟内存”,我就来教育下。(Update)

虚拟内存大神一人力战群雄。
千秋万载一统江湖


TOP

---比如主人公把某个场景的环境砸得个稀巴烂,或者触发了某些事件,然后去了另外一个地方,游戏并不会强迫你存盘,但是这些信息在你去另外一个新地方时就是无用的了,可以暂时不用。这是从游戏的角度去看的。反应到操作系统上则是当用户破换场景、触发事件时, 应用程序向操作系统申请了一片内存,操作系统隔一定时间就把这片内存的时间计数加1,如果应用程序又用到了这片内存,那么把计数清零。当操作系统发现这片内存的时间计数操过某个数值,则操作系统认为这片内存肯定暂时不用了,则自动把它挪到硬盘上,给应用程序腾出内存空间。----

不明白这么做对提高游戏的性能和画面有什么好处...
相反如果256mb只能表现同屏100个固定多边形数量和贴图精度npc,我们假如硬要做出200个,请教一下ff神用虚拟内存应该如何实现呢?



TOP

留名。
不能再围观下去了,脱力了,再围观今晚看变型金刚2都无味了:D :D :D :D


TOP

引用:
原帖由 ffcactus 于 2009-6-24 15:39 发表
彩妹、TNT也就打个擦边球。
那个什么superjay,或许还稍微懂得多点,放了一句话就没影了。
我就不说自己了,反正肚子里就那么几两油,但自认玩弄虚拟缓存大神还是够的。
倒是TNT,lolicon,你成擦边球了

TOP

引用:
原帖由 ffcactus 於 2009-6-24 15:39 發表
彩妹、TNT也就打個擦邊球。
那個什麼superjay,或許還稍微懂得多點,放了一句話就沒影了。
要我解釋1+1為什麼等於2給你聽還真難
講簡單了你不能通盤理解,講難了你又聽不懂

TOP

引用:
原帖由 ffcactus 于 2009-6-24 15:31 发表

是因为还没DDR尖端吧。
rambus此刻内牛满面啊…… 情何以堪,情何以堪啊~

TOP

引用:
原帖由 火彩 于 2009-6-24 15:41 发表


我就不说自己了,反正肚子里就那么几两油,但自认玩弄虚拟缓存大神还是够的。
倒是TNT,lolicon,你成擦边球了
彩姐姐,你在FF大神嘴里也变成彩妹了……

TOP

引用:
原帖由 csitd 于 2009-6-24 15:38 发表
[posted by wap]

我是说游戏开发者要是利用操作系统来做这事,就是弱智了,你能告诉我有哪个是这样的吗?
你说这句话表明你严重缺乏对操作系统和应用软件之间的关系的认识。
一个应用软件我们把它看成一个简单的进程(或许不止一个),什么是进程,进程就是代码、数据、资源、系统调用等等组成的一个环境。
这些全部都是由操作系统来维护的,游戏开发者根本就不可能决定用不用虚拟内存,这都不是他能支配的事情。就像你觉得喝水、呼吸没有必要啊,但是你的细胞组织需要水分氧气。

TOP

继续围观,继续开心。

TOP

炸药闪光弹博士
有人说你是擦边球

TOP

[posted by wap]

你傻啊……正因为游戏开发者不能决定(能决定也不用),所以才要控制资源占用,否则超出就完蛋了

TOP

lz,一知半解别出来秀

TOP

引用:
原帖由 爱游戏 于 2009-6-24 15:40 发表
相反如果256mb只能表现同屏100个固定多边形数量和贴图精度npc,我们假如硬要做出200个,请教一下ff神用虚拟内存应该如何实现呢?
这个很简单啊,2帧交替着放,上一帧是100个多边形,下一帧是另100个多边形,反正人眼分不出每1帧的速度的,混在一起就有200个多边形了

挖哈哈哈哈哈哈

[ 本帖最后由 快乐的死神 于 2009-6-24 16:04 编辑 ]

TOP

引用:
原帖由 爱游戏 于 2009-6-24 15:40 发表
---比如主人公把某个场景的环境砸得个稀巴烂,或者触发了某些事件,然后去了另外一个地方,游戏并不会强迫你存盘,但是这些信息在你去另外一个新地方时就是无用的了,可以暂时不用。这是从游戏的角度去看的。反应到操作系统上则是当用户破换场景、触发事件时, 应用程序向操作系统申请了一片内存,操作系统隔一定时间就把这片内存的时间计数加1,如果应用程序又用到了这片内存,那么把计数清零。当操作系统发现这片内存的时间计数操过某个数值,则操作系统认为这片内存肯定暂时不用了,则自动把它挪到硬盘上,给应用程序腾出内存空间。----

不明白这么做对提高游戏的性能和画面有什么好处...
相反如果256mb只能表现同屏100个固定多边形数量和贴图精度npc,我们假如硬要做出200个,请教一下ff神用虚拟内存应该如何实现呢?
一个计算机系统的内存资源是很宝贵的。在效率下降不明显的情况下,提供更多的内存,当然有好处。
当然,不是所有的数据都可以交换出去临时保存,那些常用的也不会被调度算法给挑出来调度。
一个游戏表现100个固定多边形和贴图精度的NPC,并不要以为内存中的信息就是这些,还有大量的其他信息信息。假如表现100个NPC需要的内存几乎已经占据了所有内存, 那当然表现200个NPC就变得不现实, 因为没有人说虚拟内存能实现一切,是万金油。游戏设计人员也不会这么做。
设想100个NPC需要100个内存资源, NPC正在打仗,打仗的算法需要100个内存单元,系统其他消耗56个内存单元。但是开发者有一个更好的算法能使得打仗的AI更真实,不过需要120个内存单元。怎么办?没关系啊,你就用那消耗120的呗,操作系统会自动将系统其他消耗的56个单元中的某些挪出来暂存。当然你要用个超高智能的需要1000个内存单元的AI,那当然不现实。

TOP

引用:
原帖由 amego 于 2009-6-24 15:54 发表
lz,一知半解别出来秀
虽然我不曾参与虚拟内存理论的提出, 也没产于MMU的设计, 也没参与操作系统内存管理的设计。
不过我肯定PS3有使用虚拟内存技术的物理基础还是有把握的。
或者你觉得不行?

TOP

发新话题
     
官方公众号及微博