因在当时的公司一些事,我在2008年9月开始寻找新的工作机会。

当时收到天津猛犸的面试通知后,我欣然前往,这是天津比较有名的手机网游公司。当时面试完后即给了offer,于是,只有等待了。

不曾想,一等将近一个月,十一国庆结束开始入职天津猛犸,开始我十分神往的手机网络游戏开发之旅:symbian平台的封神online手机网游移植。

说是移植,实际上,是重做,共用一套数据和控制逻辑而已。入职时,游戏地图,人物,技能等模块基本就绪。我的主要工作就是地图之上的UI:UI框架(十几个基础控件)和登陆,角色,聊天,背包,技能栏等等.

起初,代码移植,进展缓慢。后来,按功能模块开发,重新设计实现UI框架和基础控件,根据可能的需求,逐步完善。实践证明,如果不需要跨平台,按功能模块开发,相比直接代码移植,要高效的多。

第一次对App性能这么敏感:内存占用,C/C++的陷阱。

1.内存占用

  • 优化背景
    • 当时内存占用这块并没有出现瓶颈和问题,温哥指出我们可以做的更好。我review了整个工程的全部模块。
  • 优化结果
    • 内存占用峰值由原来的3.5M左右,降低到1.5M左右。
  • 体会
    • 业余的,着眼功能;专业的,着眼性能;
    • 人人可以做个功能,却不是人人都可以性能做到很好。

2.C/C++陷阱

  • 优化背景

    • 当时整个网游App运行一天,可能不crash;
    • 有时运行一两个小时,就挂了。
  • 优化结果

    • 1.review整个工程各个模块关于指针,数组相关逻辑,代码级。
    • 2.逐步开启一些模块,确定问题的查找范围,排查问题根源,果然发现一些“隐藏杀手”