- 浏览: 341486 次
- 性别:
- 来自: 福建福州
文章分类
最新评论
-
jw72jw:
最后这个是打表求值
LUA源码分析三:table分析(1) -
dyllove98:
"一些非常重要的问题,涉及面少。那这个时候,我更崇尚 ...
乱写:团队里的独裁和民主一点看法 -
jvmlover:
被踩10次了,什么思想感情啊。
LUA源码分析三:table分析(1) -
chenchenfly99:
chenchenfly99 写道
MMO游戏终极内测开服一周,问题记录 -
chenchenfly99:
...
MMO游戏终极内测开服一周,问题记录
ECUG:http://ecug.org/2010:home
简单的记录,里面的很多点扯出来都能扯一篇出来。
第一日
9点总算及时赶到,签到等扒拉扒拉。以下记录分段式,按笔记本上的稍做整理。不过,去这种大会前,能有20%值得听的就很满足了。
这个是前提
第一场 生不逢时的 WEB OS
大概说了之所以10年发展的WEB OS失败原因有终端不统一,用户体不对(连入网络基本都在电脑)。
作者介绍了他们公司失败的WEB OS架构
前端 html,css,flash
后段 数据持久化,mysql
然后巴拉巴拉了大堆,结果就是WEB OS失败了,最后转向CLOUD OS. 简单的说过去十年根本没有合适载体来存放WEB OS.我对CLOUD OS的观念还是和一样,是业务巨头的大戏,关个人PC很小的事。没听到什么很有价值的东西。反而对前端有个疑惑了,WEB OS这么些年来,就尽用FLASH,css折腾了?如果纯粹是模拟一个UI界面,那对以后游戏界面怎么办?一开始WEB OS如果关注功能说不定还有一丝希望,界面其实只是服务器传递当前的界面图片,然后加以热点判断,当前点了什么,鼠标动作。更多的是辅助以功能,最后才是UI的统一等等。
第二场 Erlang游戏开发
因为我也是做游戏的,很注意的听了下。作者是耗费3个月时间(后台),做了个SNS的游戏。不过盈利不影响,快放弃了。这个兴趣所产生的东西它的组合也很牛,中间7、8页PPT都是讲要选择哪种开源程序等等。最后比较着重讲了数据存储格式,key-value这样的映射存储。我本来想提问可以尝试png的格式,最后还是放弃了。关键是跟游戏性能关联不大,也没什么兴趣了
第三场 美地存储
一个分布式的存储。通俗点就是网盘^_^.听作者介绍土豆网就是用它的,04年开发的。我主要问了几个问题
1.用户和机器投资的比例。因为听他介绍用的机器蛮多的。后来见是给土豆网类似用的,就略过了。
2.同步更新。比如一个用户更新成功后,是在其中的一台机器更新成功,还是已经分布到所有机器上了。换个思路就是,从逻辑上讲一个用户虽然对应着一个服务器组,但是物理上是否也是一致。最后结果2者一致。本来想继续问如果上传失败不是所有的机器都要回滚?后来觉得这个问题挺傻,就没继续追问
3.负载均衡。作者提到一个可以根据机器硬件配置来调节,好奇。得知是有个专门的管理机器来做这个平衡。我理想中的是每个机器是对等的,可以互相平衡通知,至多有一台机器来管理下当前机器列表。本来想继续追问如果管理机器有负载问题了,咋办?后来觉得挺傻,就没继续追问。不过现在想起来,还是支持每台机器是互相平衡的观点。
4.交叉恢复。问这个问题,我对磁盘的牛B的I/O不太了解,后来得知是利用raid完成的。于是疑惑解开
午饭,照相时间和许大(许式伟)、余大(余锋)打了个招呼,闷头吃饭。不过排队的时候听到一个挺有意思的(没有任何第三方色彩的描述):一哥们出面试题的时候,要求对方说出大学时《数据结构》这本书的版本号和封面色。这个,这个。。。。我觉得说VC6的SP1补丁补了那些更专业。
第四场 面向状态编程模式
扒拉扒拉,对这种语言上的东西兴趣不是很大。不过反响却很激烈,大部分程序员的G点都被触到了^_^.埋头看赞助举办方发的内部杂志。讲的是把青春留在盛大的伟大女性们。。。。扒拉扒拉翻完书,闭目养神会,等待下面的场次。
第五场 Bob Ippolito的演讲
特邀嘉宾。MochiMedia CTO & 创始人之一。著名 Erlang Web 服务器框架 MochiWeb 的作者。
一个外国CTO哥们,不认识,英语也听不懂。努力的看PPT,装听懂津津有味中。。。得知明天还有位外国友人的,担忧中。。
中间茶点时间,装了盘水果等点心,角落狂吃中。。。
第六场 软件工程&架构
许大的。
分为两大块,一个是软件的代码以KISS原则进行讲解,一个是单元测试。对于单元测试我基本没很专业的使用过,重点介绍前面吧。
介绍了一个很重要的时间图:
开发阶段--------------维护阶段----------------------------------------
1.开发阶段时间差异不是很大,差1倍很多了。而且老手的开发时间甚至比新手用得还多。但是这中间投入的时间对维护阶段至关重要。
2.差别,在维护阶段所进行的投入
3.如果加入一个新功能,应该在原来的代码上扩充,比如继承,封装,而不是去修改原来的代码
4.复杂度。人为的加入,自己乱想。
我对自己乱想深有体会。对于一个前期开发阶段的需求预测,要么你是很NB的人,要么就乖乖的按自己能力来制定,不要胡思乱想。那有人会问,那怎么确定后期的需求扩展?我觉得这就是一遍遍重写,用时间换来的经验。但是切忌,不要胡思乱想超出自己能力之外的需求。特别NB的除外。
5.工程语意的制定
这是我自己加的,语意包括比如大小返回用size,拷贝第一个参数是目的地址,初始化时固定的名称init,分配对象newObject等等。我觉得代码规范什么都是其次,一个有一定经验的程序员写出的代码不会难看到哪儿去。更重要的是不要对语意造成偏差。记得一回改代码,我都初始化得好好的,偏偏有个值超出了预期。仔细跟踪发现,不知道谁直接memset(0)了一下。大怒!
6.重构
当进行到这一步的时候,其实就是一个擦屁股的阶段。比如对之前代码的理解等等。更体现出了开发阶段的重要性。
这里我要说的是游戏中的开发:策划+程序。2者的质量管理肯定不能一个模式。在质量管理上不能简单的依赖当前功能的完成度来判断程序的好坏。而是应该以该模块出现的BUG率;以及当别人引用到该模块功能时,对该模块的修改率。否则有时候是非常不公平的,一个功能需要另一个功能的代码,结果发现不能复用,造成时间延迟,这能怪当前开发的程序员吗?
7.模块>框架
框架的定义,限制你的业务流程。比如MFC的框架,你要加个什么东西,需要在这里加个什么代码,那里加个什么代码。这样就对一些移动、重构造造成困难。而你写的模块,应该充分抽象出业务的接口,而不应该直接调用框接的接口导入数据,造成复用的困难等等。以wps举个例子:
WPS需要接受各种不同的格式输入,那么
输入1格式 输入2格式 输入3个格式
内核IO接口
输出文档
那么内核的框架有时候会进行重构等调整,影响了全部的上层代码,于是引入中间格式
输入1格式 输入2格式 输入3个格式
中间格式
内核IO接口
输出文档
那么,只要维护好中间的格式。WPS直接使用了WORLD的格式。而且能够即时查看中间格式转换的是否正确(WORLD可以直接打开),这也进一步说明大家再存储格式的时候,优先采用肉眼可以直接观察的格式
8.单元测试
这个我确实没怎么用过。但是根据许大的描述,似乎非常自动化。这边代码一编译完,另一边就将所有的单元测试自动炮了一遍。并且给出忠告,保留你的测试用例。
第七场 并行计算
比较丰富。对并行的介绍,现场的演示,舞台控制系统的讲解。
并行库、工具:openmp, bbt
开头语,免费的午餐已经结束。欣然同意啊。并行计算其实很简单,重要的是对任务的分解,cache的利用,CPU的演变。任务的分解没什么好说的,根据各个业务来分。cache要求开始变高,比如要求各个线程都需要独立的内存分配池,假共享的问题,Scatter,Gatter.
独立内存分配池这个没什么好说的,比如linux中的slab对numa等节点也有考虑到,我也仿写了个windows的,所以对这个深有同感;
假共享问题指什么呢,比如有个int[5]的数组,你分别让线程1-5分别对其中对应的下标进行操作。结果在读cache的时候实际读了int[5]整个的内存,并且修改也是。结果在返回的时候需要对整个数组段进行刷新,并且性能上损失很大,作者给出了数据性能图,这个是我以前没考虑到的;
Scatter,Gatter这个暂时还没找到资料。粗略的说就是离散的地址对连续地址赋值,连续地址对离散的地址赋值。一会补上
作者讲到舞台系统的精度控制,需要毫秒级的。我刚想记录问题,windows的sleep最小单位是20ms,那么。。。刚想着,作者翻到下一页就讲到系统层的不足,需要驱动进行如何如何。唉,幼稚了下。
中间演示了个图片光照渲染,不熟悉,略过。
最后是介绍了CPU和GPU的一些演变。GPU之所以如此快就是采用了并行计算,其中的流水线(是这么叫吧?)的数量级等等。而CPU的发展开始多核化,但是是以异构系统发展(一个全功能核、计算核),以及L1,L2...我想我至多只用了L1,至于L2,L3就没细想了。
提问环节上,受到介绍的异构系统启发,我在想游戏中单场景的构造,问了个全功能核、计算核数据竞争的问题。得知还是需要汇总,关键还是看任务分配的算法;
看作者对CPU很了解,继续问了个乱序的问题。比如1,2,3,4传入,计算顺序可能是4,2,3,1,最后汇总是1,3,4,这部分当时资料没找到,一个口气问了。给出的解答是一样有个指令缓存,如果指令时有前提依据的依然要等待。
记录这段文字的时候,总觉得当时自己还问了个什么问题,但是想不起来了。。。
最后两场还是很符合胃口的,期待明天。
发表评论
-
【创业】找味道相同程序员
2013-10-29 12:06 30我觉得写招聘,就是在找味道一样的人。但是团队正起步中,没有 ... -
0到新浪微博综搜榜第一
2012-12-27 09:38 19720到新浪微博综搜榜第一 原谅我标题了一点,这两天 ... -
看事儿网:下一代社交内容分析和demo展示
2012-10-31 11:26 1704兄弟我最近用业余时间学了点WEB的东西,做了个自己设想中 ... -
总结第一个项目"种粉网"的失败
2012-08-07 10:45 1278第一个项目“种粉网 ... -
当年朦胧的程序员我,在游戏上对聊天玩法新的包装想法。。
2011-10-13 22:48 1500下班回家的路上,在 ... -
Google Protocol Buffer“序列化.写入”代码流程一点分析
2011-06-09 23:34 16684(为啥在可视化编辑里的字都好好的,出来后就忽大忽小的,尤其在代 ... -
2010 ECUG大会,第二天记录。
2010-10-17 21:35 1125第二天 早上爬了几次才起来。一路小跑,买完包子后在 ... -
缓存的力量,windows下的slub分配器
2010-07-13 14:58 2285上张图先: 该CPU L2=3MB 首先谈谈对象分 ... -
IOCP分层二,一个复杂度为1的对象池定位
2010-04-16 11:42 2010前篇 IOCP的分层一 在对象池的使用上,我采 ... -
IOCP的分层一
2010-04-13 16:09 1358写网络代码时,总希望把逻辑和网络层分开。而在IOC ... -
~也来共享共享我的程序学习方法~
2010-03-03 22:23 849一家之言,如果你觉得天天看书无效、纠结语法的时候可以 ... -
(00XX系列)搞搞有限状态机
2009-11-12 17:02 1414需要修改游戏中的一些AI,自己做了个小模型。一 ... -
万恶的继承
2009-10-28 23:36 817(1) 关于人物继承: cla ... -
一篇以前写过的文章:C++之一个编程入门者的感悟(能引起你的共鸣,是我最值得的事)
2009-03-11 13:29 874今日再看到这篇文章实 ... -
我怎么就想个留个电话,该留个邮箱啊。
2009-01-06 11:18 1050跟客户交流完问题后,一些问题还没得到解决。客户拿了张纸叫我把一 ... -
说出“对不起”的感觉真好
2008-12-30 21:38 1490早上,在聚精会神看书中。一同事突然问我:“XX,关于。。。。” ... -
观察和留意细节
2008-12-06 12:33 921周五下午回公司开会。 在会议室门外,已经坐着几个同组的同事。 ... -
就算说话很随便,关系再好的人,也要注意用词用语
2008-12-03 22:54 1609如下: 中午,组长因为少了个椅子,来我旁边搬走张椅子(我是用 ... -
今日反思:对简单程序的不重视
2008-11-24 23:04 923一个很简单的UDP/TCP/服务器连接。 不怎么重视,很随意的 ... -
内网呆了一周,一些奇怪的问题记录下。。
2008-09-05 22:17 1252内网呆了一周,一些奇怪的问题记录下。。 这个是很久以前的 协 ...
相关推荐
标题“杭州ecug会议上的演讲稿”提示我们这是一篇在杭州举行的ECUG(Erlang Community User Group)会议上的演讲材料,很可能涉及到Erlang编程语言及其应用。Erlang是一种面向并发、分布式和实时系统的函数式编程...
2020 年 1 月 4 日 – 5 日,...作为一个充满技术情怀的社区,ECUG 全称 Effective Cloud User Group(实效云计算用户组),由七牛云 CEO 许式伟发起,并集结了一批具有高端视角并仍醉心于技术本身的同仁,共同关注云
七牛云2021 ECUG Con全球技术大会内部票:给大家一共搞来五张小一千块钱的内部票。想要的加群【947578238】联系群主 七牛云2021 ECUG Con全球技术大会早鸟特惠票: 项目源码 初步源码 前端原始码 的github 码云 主要...
七牛云2021 ECUG Con全球技术大会内部票:给大家一共搞来五张小一千块钱的内部票。想要的加群【947578238】联系群主 七牛云2021 ECUG Con全球技术大会早鸟特惠票: 项目源码 初步源码 前端原始码 的github 码云 ...
在行业前瞻方面,ECUG技术大会2020的举办将为通信行业带来新的技术和解决方案,这些技术和方案将在5G建设中发挥重要作用。与此同时,投资者也应关注行业内的风险,包括中美贸易摩擦可能带来的影响,以及行业增速放缓...
Python之路(二)Python的下载安装和配置编写第一个Python程序Python环境的配置以及第一个程序完成! Python的下载安装和配置 python的下载 官网下载:https://www.python.org/downloads/windows/ 使用我目前正在...