2009年3月2日星期一

对VM的进一步优化

今天召集了几个人组成了包括我在内的8人优化小组,专门对问鼎进行优化。三个服务器端、三个客户端、一个策划、一个美术,可以说是公司目前最佳技术力量,争取在1-2个月之内达成优化目标。

因为人力相对充裕,所以我考虑对VM做进一步的优化。本来我并不打算做这部分工作,因为性价比不高,要编写很多代码,而获得的收益有限。但是在小组其他人可以解决发现的主要问题以后,这些次要问题也将上升为主要问题了,所以不如早点动手,让driver能够经受更长时间的考验。

目前我在将driver 12字节长的指令修改为4字节的 - 当初为了省事,我设计每个指令使用两个IntR参数(也就是64位的driver这两个参数占据16个字节,单条指令将有20个字节),这当然很奢侈。不过事实上,在服务器端内存充裕的情况下,这算不了什么,区区20M空间无足轻重,因为cache失效而浪费的CPU资源也有限的很。但是在客户端则有所不同,每节约1M都是令人振奋的,毕竟很多玩家的机器还只有512M内存。

2000以后的我设计思路和90年代初有了很大的不同。在640K内存下编码的时候,每一个比特都要精打细算,思考如何做能够更加节省。而现在,我更多的考虑是如何简洁、可靠、容易维护,效率不再是优先考虑的因素了。毕竟内存已经由不到1M飞涨到了128M+,就连嵌入式系统上也有超过16M的内存空间了。我想,等到用户桌面机器普遍16G内存的时代来临以后,程序设计可以更加轻松。处理逻辑方面几乎不需要考虑内存的问题,主要的内存是用于保存多媒体数据,逻辑占用的数据只是凤毛麟角。就现在而言,真正影响客户端资源占用的还是贴图,节省一张被浪费的贴图,就足以相当于我一天的工作了。

没有评论:

发表评论