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


发新话题
打印

[其他] 关于虚拟内存,龙哥有问题虚心向ffcactus请教

龙哥想问的是从硬盘里读取数据load到内存中,和从虚拟内存里读取数据load到内存中有什么差别呢?
没有区别。
如果PS3有一个2TB的硬盘,而硬盘不做任何存储,全部作为虚拟内存,,这样一来以PS3的256MB内存对2TB虚拟内存应用岂不是强到逆天?
不会强到逆天
加入PS3的硬盘全部作为虚拟内存,那以后我们是否可以把硬盘直接看成为虚拟内存呢?
虚拟内存把数据转存到硬盘, 但硬盘不等于虚拟内存。比如你怕记不住电话号码可以把它写在本子上,要的时候可以拿本子看,但不是你买下造纸厂,你记忆能力就提升到无穷。
想来想去,居然颇有哲学意味,正是色即是空,空既是色,硬盘可以转换为虚拟内存,虚拟内存也可以转换为硬盘,佛法无涯,变化自在,不是龙哥这种凡人可以领悟的。
科学都不行, 就不要谈哲学了。


TOP

引用:
原帖由 龙哥 于 2009-6-26 06:13 发表


哦,原来如此,受教了,但是还有些不明白
我想请问ffcactus,从虚拟内存---内存---cpu---gpu的dataflow和从硬盘---内存---cpu---gpu的dataflow有什么不同吗?
另外我还想问一下,从内存里load一张1024x1024的贴 ...
哦,原来如此,受教了,但是还有些不明白
我想请问ffcactus,从虚拟内存---内存---cpu---gpu的dataflow和从硬盘---内存---cpu---gpu的dataflow有什么不同吗?
从概念上来说, 虚拟内存不是指“存储介质”,而是“存储机制”,所以没有虚拟内存---内存这一说法。但我明白你的意思,如果仅仅从I/0读写的角度上来说,这与硬盘---内存这个过程没有区别。我想区别可能有这些,虚拟内存那方面,它保持在硬盘中的是运算的中间信息(这些信息本身是保存在内存中),不过也可能把把调入内存的执行代码也挪出去了,会不会这样我没去考证。而硬盘那方面保存的是代码

内存---CPU,用到了虚拟内存的情况是:CPU访问内存,访问不到,产生异常,异常处理程序用访问地址计算,计算出其他位置,如果有则把其他位置的信息COPY回来,没有则报错。   正常情况下,如果信息本来就在内存中,就没有这个环节了。
CPU-GPU这一环节肯定不会使用虚拟内存机制。



另外我还想问一下,从内存里load一张1024x1024的贴图的速度,比起从虚拟内存里load一张同样尺寸的贴图要快多少?
当然是要快得多了。

以PS3为例吧
对了,请问在实际游戏操作里,哪些部分是常驻内存的,哪些可以放在虚拟内存里供程序调用呢?打个比方,比如mesh的顶点信息啊,bone的矩阵值啊...
一般来说,编辑器可以指定那些常驻内存的。你问的什么mesh,bone我不知道在说什么,可是我可以举个你熟悉的例子,假如你要面部识别一张人脸图,那么人脸图的信息肯定是不能放在虚拟内存空间的。这个就算软件设计人员没有指定,操作系统也不会,因为操作系统是根据陈旧度来调度,人脸图像信息总在参与运算,所以不会被调出。假如运算完了,你又用计算机干别的事情,一段时间后,这个人脸图像的信息或许就会被挪出内存了。

你是理科高材生,应该懂吧?管理内存和虚拟内存这么简单的事情,想必比龙哥这门外汉清楚多了吧。哈哈。



TOP

引用:
原帖由 james.l 于 2009-6-26 09:49 发表
lu上的修铁路的47同志对楼主的评价,我随便转过来给众位看看!

------------------------------------------------------------------------------------------------------------------------------------------ ...
你的这些问题我早就说得很清楚了,不想再重复。


TOP

引用:
原帖由 james.l 于 2009-6-26 10:36 发表
那我反问您老人家一句,xo的硬盘读取速度跟光盘读取速度之间的差距有多大
差距是多少我说不上来, 不过肯定硬盘快。
但你想借此说明什么呢? 想好了, 可别挨喷。

TOP

引用:
原帖由 james.l 于 2009-6-26 10:44 发表
所以我说2神就是2啊,一个游戏硬盘完全安装读取的速度比在光盘上读取来得快,像gta4这种连续读取场景的游戏硬盘运行当然比纯粹光盘运行的时候在场景人物读取的时候流畅,这种情况都能联想到是虚拟内存,我看2给阁下的 ...
我看你才是联想狂才对, 还硬盘运行, 你是来卖笑的?

TOP

引用:
原帖由 james.l 于 2009-6-26 11:03 发表
写这东西的人连点起码的硬件常识都没有。

虚拟内存主要是为了解决巨大的程序内存需求、防止溢出而出现的。比如386、486时代常见的内存不够程序无法运行的问题今天在有了虚拟内存后得到了解决,32位Windows后不会再 ...
你是得了强迫症还是真没的, 本来就256MB的内存, 你去运行个1GB需求的软件, 当然会卡得不行。这时你当然需要去增加内存。这种极端情况本来就不在讨论范围内,因为没有人说虚拟内存对效率不会有影响, 也没谁说这个事万金油,什么情况下都没问题。

未必你的脑子只能设想这种极端情况, 而不去想想虚拟内存技术可以让你256MB的内存去运行个300MB的东西, 而且你也不会觉得有什么问题?

TOP

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