近来用到的几个技术点

  • mono的JIT在运行时会造成轻微的卡顿。为了避免这个卡顿对手感的影响,我们在进入游戏时就对局内的功能类做预编译。预编译很简单,调用一下函数指针即可。找到应该预编译哪些累则稍麻烦一些,要给mono加些日志,输出局内JIT编译的函数列表
  • 局内关闭mono的GC,具体内容在之前的一篇博客中有介绍
  • Android平台内存分析。为了降低内存占用,我们对游戏进程在android平台上的内存占用进行了仔细的分析,除去各种资源和对象占用的内存,java内存,总是还有很多native内存不知道被什么占用了。后来我们在打开了调试选项的android系统上运行(手机的系统是我们自己编译的),这时通过ddms工具就可以看到所有so库的内存增量。进而发现有一些我们接入的第三方组件占用了不少内存。
  • 项目到了一定规模以后,代码编译的时间大幅增加到了几分钟的时间。这对于开发效率影响很大。传统的优化方式是将不常改动的框架性代码挪到firstpass,实践的效果并不是很好。一个更好的方案是用微软的编译器替代mono的编译器。做一个编译命令的简单转发层,将mono的编译命令转发给微软的编译器。编译时间一下子降低到30秒左右。

想到再补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值